- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
也许我在这里遗漏了一些东西,但我正在按照 Dreamhost 文档中的说明安装自定义 Python 解释器。我怀疑 Python 2.x -> Python 3.x 中的 execl()
存在问题,但我不能确定。
http://wiki.dreamhost.com/Python#Building_a_custom_version_of_Python
这是我遇到的问题。似乎同一个解释器运行了两次,即使我告诉它别的东西。
import os, sys
log = file('/home/user/mysite.com/passengerwsgi.log', 'a')
log.write("Running %s\n" % (sys.executable))
log.write("Python %s\n" % (sys.version))
log.write("Path %s\n" % (sys.path))
INTERP = "/home/user/Python-3.3.5/bin/python3.3"
PACKAGES = "/home/user/mysite.com/packages"
if sys.executable != INTERP:
log.write("Detected wrong interpreter location, swapping to %s\n" % (INTERP))
# Swapping interpreters will not flush any files.
log.flush()
log.close()
os.execl(INTERP, INERP, *sys.argv)
# Should resume execution from the top of the file.
log.write("Loading pypiserver...")
log.flush()
sys.path.append(os.getcwd())
import site
import pypiserver
application = pypiserver.app(PACKAGES, redirect_to_fallback=False)
当它运行时,我得到了可怕的 500 服务器错误,但它似乎并不像我指定的 interpeter 实际上正在运行,正如这个输出所指示的那样。如果我指定了错误的解释器路径,它将完全失败,正如我所期望的那样。
> Running /usr/bin/python Python 2.6.6 (r266:84292, Dec 26 2010,
> 22:31:48) [GCC 4.4.5] Path
> ['/usr/local/dh/passenger/lib/phusion_passenger/wsgi',
> '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2',
> '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old',
> '/usr/lib/python2.6/lib-dynload',
> '/usr/local/lib/python2.6/dist-packages',
> '/usr/lib/python2.6/dist-packages',
> '/usr/lib/python2.6/dist-packages/PIL',
> '/usr/lib/pymodules/python2.6'] Detected wrong interpreter location,
> swapping to /home/user/Python-3.3.5/bin/python3.3 Running
> /usr/bin/python Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) [GCC
> 4.4.5] Path ['/usr/local/dh/passenger/lib/phusion_passenger/wsgi', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2',
> '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old',
> '/usr/lib/python2.6/lib-dynload',
> '/usr/local/lib/python2.6/dist-packages',
> '/usr/lib/python2.6/dist-packages',
> '/usr/lib/python2.6/dist-packages/PIL',
> '/usr/lib/pymodules/python2.6'] Detected wrong interpreter location,
> swapping to /home/user/Python-3.3.5/bin/python3.3
为什么它会执行两次/usr/bin/python 解释器?
最佳答案
这是我的 passenger_wsgi.py
,我用它来启动通过 pipenv
管理的 Flask 应用程序。这可能对您有帮助,也可能没有帮助,尽管除了我如何确定要运行哪个解释器之外,我看不出有什么主要不同。确保您指向的路径实际上不是符号链接(symbolic link)或启动错误 python 版本的脚本。
import sys, os
import subprocess
INTERP = subprocess.check_output(['pipenv', 'run', 'which', 'python3']).strip().decode('utf-8')
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())
from my_site import app
# hackish way to make Passenger urldecode the same way WSGI does
import urllib.parse
def application(environ, start_response):
environ["PATH_INFO"] = urllib.parse.unquote(environ["PATH_INFO"])
return app(environ, start_response)
就我的环境而言,我遵循了 Dreamhost 的建议约定并安装了前缀为 $HOME/opt/python-3.6.4
的 Python 3.6.4 并添加了 $HOME/opt/python-3.6.4/bin
到我的 $PATH
,并使用 Python 的 make install
将它放在那个地方,没有额外的包装。 pipenv
是使用 pip install --user pipenv
安装的,我将 $HOME/.local/bin
添加到我的 $PATH
以及。
关于python - 在 Dreamhost 上安装 Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942455/
我正在尝试设置一个与 Dreamhost 和我的本地机器配对的 SSH key 。我使用 git bash 作为我的终端(使用 mingw32) 我可以通过 ssh myusername@myshar
我正在尝试在 dreamhost 上使用 python3 设置 django。 我已经按照他们的记录设置了一个 virtualenv 并安装了所有先决条件。我已经让 runserver 工作了 问题出
问候 djangonauts 伙伴 我的 Django 应用程序在 Dreamhost 上运行良好。 当我使用 gmail 时,我的 View 中的代码错误通知和 send_mail() 都可以正常工
我在 Dreamhost 的 MySQL 上遇到外键问题。每次我尝试将外键添加到表中时,都会收到错误“无法添加外键约束”。我使用的语法是 ALTER TABLE (table_name) ADD FO
我已经运行了 10 年的慈善服务,设置基本的 WordPress 安装并处理不可避免的黑客攻击等。我已经没有个人时间来管理它,需要向每个人发出服务通知,我将停止他们的网站从今年年底开始提供服务。我至少
首先抱歉我的英语不好,我有一个重要的问题要解决。我正在尝试连接到我的 dreamhost 的数据库,但它返回以下错误: Can't connect to local MySQL server thro
如何将所有 ssh 尝试记录到我的 Dreamhost 服务器上?或者如果日志已经存在,它在哪里?我检查了 logs/example.com/html/我找不到任何用于 ssh 登录的日志文件。 我想
我有一个带有 Dreamhost 的虚拟专用服务器。我正在尝试创建一个我的所有域都可以访问的共享文件夹。在该文件夹中,我想放置 PHP 类,甚至是 javascript 之类的静态文件。 我已经创建了
我正在尝试获取 sentry在我的 dreamhost 服务器上运行。 Dreamhost 使用 passenger wsgi 来服务 python 框架,比如 django。我能够运行 Django
我正尝试按照 http://wiki.dreamhost.com/Gitolite 安装 Gitolite 我收到如下错误: "make_path" is not exported by the Fi
我想压缩我的 Dreamhost 网站上的所有 css 和 js,我在网上找到了一些建议,但没有一个工作。有没有人在 Dreamhost 站点上运行 gzip 的工作示例? 最佳答案 我参加 2012
我正在尝试在我的 Dreamhost 帐户中使用 Poll 教程(我之前没有任何部署 Django 的经验)。我在我的主目录下载了我在这里找到的脚本( http://gabrielfalcao.com
我按照此 guide 中的说明进行操作为了使用 Git 将项目部署到远程存储库。执行此操作时没有错误,但远程站点上没有任何更改。通过这个推送时我看到了这一点: git push dreamhost m
当我尝试在 DreamHost 上的服务器上托管 CakePHP 站点时,出现以下错误 Internal Server Error The server encountered an internal
我正在尝试在我的 dreamhost 共享服务器上设置一个 mysql 数据库,但似乎没有 mysqlclient 我无法继续。当我尝试 pip install mysqlclient 但是我得到了
我有一个网站,它在 Dreamhost + Passenger + Django 上愉快地运行了好几年。最近(上周四)Dreamhost 似乎在没有通知我的情况下更新了 Passenger,这导致网站
我有一个托管 Passenger Python/Django 的 Dreamhost 共享服务器。目前我有一个收集非 python 文件的全局文件夹(/public/static,/public/me
我有点迷茫,我尝试将我的应用程序部署在共享的 Dreamhost 服务器上。 现在一切正常。这是我第一次尝试 Rails,我不是真正的程序员或系统管理员,只是一起破解一些东西。 在 Dreamhost
我想开始使用 compass 和 Sass 在我的 Dreamhost 网络空间。不幸的是,它不是提供的标准 gem 的一部分,因此安装似乎更复杂。有没有人有在 Dreamhost 上安装和运行 Co
就在我以为我了解 cron 工作时,我意识到我仍然不了解。我正在尝试通过 Dreamhost 设置一个 cron 作业以每小时 ping 一次 URL。访问此 URL 时执行一个小(ish)查询并更新
我是一名优秀的程序员,十分优秀!