Articles of python

在远程服务器上创build数据库

我想在远程Linux服务器上安装postgresql数据库。 为了在远程服务器上创build数据库,我在python中编写了一个脚本来执行服务器上的命令。 我按照顺序运行命令如下所示: cmd = "wget http://yum.pgrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm" execute cmd cmd = "rpm -Uvh http://yum.pgrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm" execute cmd cmd = "yum install postgresql postgresql-server" execute cmd …等等。 Everthing工作正常,使用postgres安装并启动数据库。 问题出现在我想在postgreql中创build数据库的时候。 我发现我必须切换到'postgres'用户并运行psql才能执行任何与数据库相关的命令。 例如: # su postgres # psql # create database test; …但由于我通过远程python代码(如第一个示例中所示)顺序传递所有commnads,似乎很难从客户端一起运行这三个命令( su postgres , psql和create )。 有没有办法一起运行所有三个命令? 我运行以下命令: # su postgres && psql && create database test; […]

/ bin / sh – 来自Python的非交互式用法

我从Python调用cmd是这样的: subpocess.Popen(['coffee'], shell=True) 我相信被翻译成: /bin/sh -c "coffee" 从文档中我看到,在非交互模式文件(如/ etc / profile)中,不会读取/etc/bash.bashrc,并使用默认的$ PATH(init $ PATH)。 我愿意吗? 有没有添加咖啡到$ PATH的唯一方法是将其复制到/ usr / local / bin?

带触摸重新加载的uWSGI虚拟主机模式

到目前为止,我一直在尝试使用uWSGIreplace构build的许多kludgy服务器代码,并在监督下为Python wsgi应用程序进行设置。 我正在同时运行几十个这样的小项目(Django,Flask等)。 目前我在Virtualhost模式下运行,我允许NGINX基本上调用应用程序。 但是,似乎重新加载function“触摸重新加载”是为了一个特定的文件。 有没有办法使用“触摸重新加载”来监视正在运行的模块,通过指定每个站点或自动? 或者有没有办法让触摸重新加载被configuration为每个应用程序? 我也看到了皇帝模式,这似乎可能是一个稍微不好的替代品,但我不确定我的用例是否会导致数十甚至数百个进程产卵。 我喜欢虚拟主机模式,因为它基本上共享了所有应用程序的工作者池,这对我来说似乎是最有效的。 当前configuration: uWSGI <uwsgi> <vhost-host/> <master/> <gid>www-data</gid> <uid>www-data</uid> <catch-exceptions/> <socket>/var/tmp/uwsgi.sock</socket> <chmod-socket/> <idle>300</idle> <processes>6</processes> <no-orphans/> <enable-threads/> <reload-mercy>5</reload-mercy> <threads>10</threads> <no-default-app/> <touch-reload/> <!– <reload-on-rss>128</reload-on-rss> Reload at 128MB of RSS (memory usage) –> </uwsgi> 更新: 在做了一些关于uWSGI如何处理closures空闲工作人员的研究后,我想我终究需要皇帝模式。 我想要做的是让很less使用的应用程序不占用资源,而且使用的应用程序占用更多的资源。 我试图做到这一点,同时保持一个像PHP-FPM一样简单的托pipe部署。 虚拟模式实现了这一点,但似乎closures所有的工作人员,只有所有的应用程序已经空闲,这是没有用的,如果任何应用程序收到稳定的stream量。 如果不真实,我很乐意在这个问题上予以纠正。 使用皇帝模式的缺点是我将不得不为每个应用程序(Blech!)制作套接字文件和configuration文件。 我仍然想知道是否有可能实现上述每个应用程序重新加载。

更改雪豹的python符号链接?

我在雪豹上安装了两个python 2.5.4安装程序,不要问为什么。 当我从cmdline运行“python”时,生成5363被启动。 当我运行/usr/bin/python2.5然后生成5646(我需要的)被启动。 在你问之前,编号并不是这些之间的唯一区别,而且也是编译的“types”,所以我真的不能用这个5363开始到某个地方。 问题是,我需要崩溃的应用程序(wxPython中的exception,不能谷歌那一个),我怀疑,当我启动与正确的Python构build主应用程序,线程开始与错误的一个相同的应用程序,在另一个系统)。 我如何去改变“默认”python2.5开始正确的构build? 我的path是: /Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin which python只返回: /Library/Frameworks/Python.framework/Versions/Current/bin/python ls -la /usr/bin/python*返回: -rwxr-xr-x 2 root wheel 86000 Sep 25 2010 /usr/bin/python -rwxr-xr-x 5 root wheel 925 Sep 25 2010 /usr/bin/python-config lrwxr-xr-x 1 root wheel 75 Sep 25 2010 /usr/bin/python2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5 lrwxr-xr-x 1 root wheel 82 Sep 25 2010 /usr/bin/python2.5-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config […]

在Amazon实例上运行Djangotesting服务器

我试图在Amazon上运行基本的Django应用程序,如:managy.py runserver 80 它开始运行,但是我不能连接到Django从浏览器到这个端口,FF无法连接。 我的安全组设置正常,因为我可以从外部连接到Apache,如果我运行它。 有没有办法在Amazon上使用django runserver? 还是有更多像Apache一样的产品式堆栈,我们强烈build议?

我如何将一个生活在python虚拟环境中的贴纸芹菜过程守护进程?

我正在试图启动一个启动celeryd的paster过程。 celeryd是一个只存在于python虚拟环境中的celeryd脚本。 我没有问题,因为这可以守护自己。 celeryd没有这种能力编码(因为开发者没有包含它),build议使用已经贡献给项目的初始化脚本 。 但是,我不确定如何将对虚拟环境和paster的需求整合到脚本中。 我如何使用paster celeryd过程守护程序本身? 谢谢。 [更新]我最终只是select使用&放弃进程到后台。 我正在处理在init脚本中处理这个命令的语法。 您必须发送一个SIGINT信号(尝试kill -SIGINT $(cat /var/run/celeryd.pid) )到粘贴过程中,以便执行热关机(正确closures由marcin的粘贴脚本celeryd产生的芹菜实例(是的, 这有点令人困惑 )。

在Nginx后面部署Python?

在Nginx背后部署Python(包括Django)的最佳方法是什么?

与Apache用户打开文件时出现问题

我遇到麻烦运行一个python文件作为Apache用户。 当我运行这个命令: sudo -u apache /etc/httpd/conf.d/upsell_by_id.py我得到这个错误: File "/etc/httpd/conf.d/upsell_by_id.py", line 8, in <module> keyword_groups = pickle.load(open("/home/zumodo/upsell_backup/upsells.pkl", "rb" )) IOError: [Errno 13] Permission denied: '/home/zumodo/upsell_backup/upsells.pkl' 但是,有问题的文件具有以下权限: -rwxrwxrwx. 1 skline skline 6.4M Dec 5 08:50 upsells.pkl 我不知道为什么apache用户不允许打开这个文件。

我如何设置Django使用Python 2.7而不是Python 2.4?

我已经安装了Python 2.7,但仍然保持Python 2.4。 当我input命令python ,它运行python 2.4,我想保持这种方式。 但是如何设置Django在运行时使用/usr/local/bin/python2.7 ? [编辑]这是运行在Apache与WSGI

无法在Red Hat Enterpise Linux上安装OpenLDAP

我试图在我的远程服务器上安装PythonLDAP,为了做到这一点,我必须安装OpenLDAP作为先决条件。 我下载了OpenLDAP,将它传输到我的服务器,解压缩,运行./configure脚本,但是当我在OpenLDAP的主目录中input“make”时,它说: make:***没有指定目标,没有findmakefile。 停止。 然而在同一个目录下还有一个configuration脚本,在同一个目录下还有一个Makefile.in文件。 为什么我无法运行make? 我从源头上build立了多年,通常运行顺利。 我不明白为什么它不会执行make步骤。 这是下载网站: http : //www.openldap.org/software/download/