在部署Python Web应用程序时,使用以下方法来部署应用程序有什么优点和缺点: 使用VCS在服务器上进行检出 使用FTP / SSH / rsync传输本地签出的副本 创build一个合适的包并将其传输到服务器 (注1 – 我目前使用的方法1.但是我的存储库可能包含许多其他项目相关的文物,以及实际的应用程序,所以这似乎最适用于SVN,我只能检查出相关的文件夹 – 与DVCS所有或没有办法,这看起来不是这样一个好主意)。 (注2 – 我目前正在切换到DVCS)
我一直在使用django_socketio (一个相当于Node的python端口)开发一个应用程序,它依赖于gevent。 它附带一个运行gevent的pywsgi服务器的Djangopipe理命令,但是当我closuresterminal窗口时,就像Django的开发服务器一样,这个命令当然会停止。 这是一个概念的certificate,并没有期望,它会阻止在生产环境,但我想让服务器至less“永久”处理HTTP请求,所以我不需要手动启动开发服务器为了演示。 我假设我需要运行这个守护进程,但在此之前,我只使用Apache和mod_wsgi,所以不知道从哪里开始,甚至不知道如何开始守护进程。 我发现gevent-spawn ,看起来很有前景,但是我不清楚这个代码是如何执行的。 基本上,我将如何使用gevent在一个设置中提供Django应用程序,而无需手动启动/停止服务器?
在AWS EC2 API中有一个名为ec2-register或ec2reg的命令,其中有一个用于快照ID的参数-s。 您可以从快照创build图像。 我希望能够在Python(目前使用boto)中做到这一点,但它看起来并不像boto中的function。 是否还有一种方法使用boto从快照ID创build图像? 还假设,架构,内核和其他属性是可用的,如果需要的话可以使用S3访问。 谢谢。
我试图让Python 2.7在IIS6中作为CGI脚本工作。 我在W2k8上一直这样做,但是这是我第一次尝试在IIS6上使用它,我无法使用它。 谷歌searchbuild议只需要两个步骤: 创buildWeb服务扩展 为.py添加一个映射 我做了这两个,但是当我尝试打开一个test.py页面时,我得到一个404错误。 一定有一些简单的我错过了。 任何build议感激地收到,而我还有一些头发离开! 我正在testing一个新的W2k3R2安装,所以没有什么额外的URLScan或AV可能会干扰。 我创build了Web服务扩展使用: 我在一个虚拟目录中使用Python,目录属性是: 最后的映射是:
我需要帮助build立一个本地的Apache2来运行Python。 在运行Mountain Lion的Mac上,使用html,php和mysql工作得很好。 Python运行。 通过MacPorts安装mod_wsgi,并在将以下内容添加到httpd.conf后检查它是否已被Apache加载: LoadModule wsgi_module modules/mod_wsgi.so <Directory /opt/local/apache2/htdocs> AddHandler wsgi-script .py Options +ExecCGI Order deny,allow Allow from all </Directory> 把我的index.py文件放到htdocs中: def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] 给整个path/opt/local/apache2/htdocs/index.py提供chmod 777权限 无论我做什么,我都会收到“禁止访问”,您无权访问此服务器上的/index.py。 去localhost / index.py。 Apache错误日志说: [Thu Aug 30 17:46:46 2012] […]
在Debian上,我使用pserve为Pyramid应用程序编写了一个简单的初始化脚本。 我不是100%肯定它是完整的/正确的,但是现在可以工作: DAEMON="/home/project/.virtualenvs/project/bin/pserve /home/project/production.ini" PIDFILE=/home/project/project.pid USER=project GROUP=project CWD=/home/project LOGFILE=/home/project/project.appserver.log case "$1" in start|stop|restart|status) echo "$1 project app server: " cd $CWD $DAEMON $1 –pid-file=$PIDFILE –user=$USER –group=$GROUP –log-file=$LOGFILE RETVAL=$? if [ "$RETVAL" -eq "0" ]; then echo "Success" fi ;; *) echo "Usage: /etc/init.d/project {start|stop|restart|status}" exit 1 ;; esac exit 0 当我以root身份login时,我可以运行以下内容而不会出现问题: ~# service project start […]
我正在使用Python 2.7,它的bottle微型框架和apache(通过mod_wsgi)构build一个web应用程序。 这个应用程序有一些REST的端点,其中一个导致浏览器连接错误(Firefox显示“连接已重置”,而Opera显示“由远程服务器closures连接”)。 我一直在试图debugging,因为服务最近工作,我无法得到在Python中出现的错误。 所以,我希望如果我通过一些具体细节,有人可以build议下一步,因为我卡住了… 我已经将违规的代码行跟踪到两个numpy.matrixlib.defmatrix.matrix对象之间的matrix乘法 这段代码在本地工作得很好,并且在通过Python shell调用function时在服务器上工作。 只有在通过mod_wsgi调用代码时才会暴露问题 该问题似乎与内存有关。 在debugging中,我使用假数据进行了testing,以删除所使用的底层数据库的任何依赖关系。 这是什么工作,什么不工作: Works —– a = np.asmatrix(np.arange(140*30).reshape((140,30))) b = np.asmatrix(np.arange(30).reshape((30,1))) c = a * b a = np.asmatrix(np.ones(140*30, dtype=np.float16).reshape((140,30))) b = np.asmatrix(np.ones(30, dtype=np.float16).reshape((30,1))) c = a * b Fails —– a = np.asmatrix(np.ones(140*30, dtype=my_type).reshape((140,30))) b = np.asmatrix(np.ones(30, dtype=my_type).reshape((30,1))) c = a * b where my_type […]
所以我有一个shell脚本来守护芹菜,并创build一堆作为守护进程运行的工作者。 我想有一种方法来重新启动芹菜任务时,底层源被更改,因为–autoreload选项不起作用。 根据我对芹菜文档的阅读, kill -HUP $pid会杀死芹菜进程,然后用相同的参数创build一个新的。 但是,当我尝试它,芹菜倒下,不回来。 我的命令有问题吗? 在开始的时候,芹菜可能会在后台默默无闻(如果是这种情况,我会在哪里弄清楚什么是错误的,并看到日志输出)? 文字命令是kill -HUP \`cat /var/run/celery/w1.pid\` 。 检查ps aux | grep celery ps aux | grep celery什么都没有返回。 发送kill信号后根本没有日志文件输出。 有任何想法吗?
我是新使用uwsgi和nginx,我一直无法弄清楚为什么我从uwsgi得到这个错误: ImportError: No module named mysite unable to load app 0 (mountpoint='my_ipaddr|') (callable not found or import error) 这是我的nginxconfiguration文件: server { listen 80; server_name my_ipaddr; location /static { alias /var/www/mysite/static; } location / { include uwsgi_params; uwsgi_pass unix:/tmp/mysite.sock; uwsgi_param UWSGI_PYHOME /var/www/mysite/venv; uwsgi_param UWSGI_CHDIR /var/www/mysite; uwsgi_param UWSGI_MODULE app; uwsgi_param UWSGI_CALLABLE app; } 这是我的uwsgi的mysite.ini: [uwsgi] vhost=true socket=/tmp/mysite.sock […]
我有一个Python 3 bottle.py应用程序,我安装到虚拟环境(让PIP自动获取依赖)。 我试图让它在我的覆盆子pi下运行在nginx和uwsgi下。 当我运行nginx和uwsgi时,访问http://localhost/icecrate导致“uWSGI Error Python application not found”。 我假设这意味着nginx正确连接到uwsgi,并且它是uwsgi无法find应用程序。 但是,如果我用uwsgi –http 0.0.0.0:8080 /etc/uwsgi/apps-enabled/icecrate.ini运行应用程序,那么http://localhost:8080会给我应用程序,这表明uwsgiconfiguration至less是充足。 我一直在search谷歌和文档几个小时的解决scheme。 我不知道我在这里做错了什么。 在/ etc / nginx的/网站可用/ icecrate server { listen 80; server_name raspberrypi; access_log /home/icecrate/logs/access.log; error_log /home/icecrate/logs/error.log; location /icecrate { uwsgi_pass unix:///tmp/icecrate.sock; include uwsgi_params; } } /etc/uwsgi/apps-available/icecrate.ini [uwsgi] vhost = true plugins = python3 socket = /tmp/icecrate.sock master = true […]