在heroku python教程中,virtualenv发布了安装wsgiref(ez_安装语法错误?)
我正在学习Heroku教程“Python入门”。我希望使用virtualenv在本地构建环境,以便在本地运行测试应用程序。requirements.txt包括在heroku python教程中,virtualenv发布了安装wsgiref(ez_安装语法错误?),python,heroku,virtualenv,wsgi,Python,Heroku,Virtualenv,Wsgi,我正在学习Heroku教程“Python入门”。我希望使用virtualenv在本地构建环境,以便在本地运行测试应用程序。requirements.txt包括 wsgiref==0.1.2 到达该步骤后,virutalenv输出以下错误消息 Downloading/unpacking wsgiref==0.1.2 (from -r requirements.txt (line 8)) Downloading wsgiref-0.1.2.zip Running setup.py egg_
wsgiref==0.1.2
到达该步骤后,virutalenv输出以下错误消息
Downloading/unpacking wsgiref==0.1.2 (from -r requirements.txt (line 8))
Downloading wsgiref-0.1.2.zip
Running setup.py egg_info for package wsgiref
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py", line 5, in <module>
import ez_setup
File "./ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py", line 5, in <module>
import ez_setup
File "./ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^
SyntaxError: invalid syntax
下载/解包wsgiref==0.1.2(从-r requirements.txt(第8行))
正在下载wsgiref-0.1.2.zip
正在为包wsgiref运行setup.py egg\u info
回溯(最近一次呼叫最后一次):
文件“”,第16行,在
文件“/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py”,第5行,在
导入ez_设置
文件“/ez_setup/_init__.py”,第170行
打印“安装工具版本”,版本“或更高版本”已安装
^
SyntaxError:无效语法
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第16行,在
文件“/private/var/folders/v6/zf84tlbn19zcqlbx977nlrmh0000gn/T/pip_build_jeremy/wsgiref/setup.py”,第5行,在
导入ez_设置
文件“/ez_setup/_init__.py”,第170行
打印“安装工具版本”,版本“或更高版本”已安装
^
SyntaxError:无效语法
我很清楚发生了什么:在某个时候,python3.3(我的默认版本)被用来通过python2.x脚本安装一些东西。我只是不知道怎么修。我的virtualenv只有Python3.x实用程序,我不确定ez_的设置是什么,即使在阅读了它令人担忧的外观之后
如何修复此问题?Heroku支持Python版本 您正在使用的教程是为Python2.7.8设计的,这就是应用程序无法在本地工作的原因。如果将应用程序推送到Heroku,它将正常工作 这里有两个选项,可以在本地计算机上安装Python2.7,也可以修改教程以使用Python3.x 对于第一个选项,使用包管理器或其他普通工具,安装Python2.x。如果您使用的是redhat或其他基于rpm的发行版(如centos、fedora等),请小心不要覆盖系统Python,因为像
yum
这样的rpm工具将停止工作
一旦安装了Python2.7.x,就必须针对该版本的Python安装pip和setuptools。最后,创建虚拟环境,然后继续本教程
如果要坚持使用Python 3.3,则必须从克隆的存储库中进行以下调整:
runtime.txt
中,将python-2.7.8
更改为python-3.3
requirements.txt
更改为以下内容:
django-toolbelt
django工具带
只是一个元包,它将安装django、gunicorn、psycopg2、dj数据库url和dj static
创建一个新的虚拟环境,然后安装这些要求。您是否只安装了Python 3.3?Python3.3不需要
wsgiref
,可以安全地从需求文件中删除它。这里可能很明显,但是您是否source-bin/activate
?@ham-sandwich是教程的一部分。(我也不知道它是干什么的,也许你可以解释一下?@JeremyKun当然,我会提交一个答案,我只需要先复制这个问题。显然,Heroku还不支持3.x系列,所以我认为问题在于何时启动virtualenv。你能试着在你的终端python2-virtualenv-myproject
中写下它,看看它是否成功。假设你的系统中也安装了python2,你可以创建一个具有特定版本virtualenv-p
的virtualenv,我也有类似的问题