我正在阅读Heroku教程“开始使用Python”。我现在要用虚拟环境在本地构建环境,这样我就可以在本地运行测试应用程序了。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_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我很清楚发生了什么:在某种程度上,python3.3 (我的默认设置)被用来通过python2.x脚本安装一些东西。我只是不知道怎么解决。我的virtualenv只有Python3.x实用程序,而且我不确定ez_setup是什么,即使在阅读了它看起来令人担忧的PyPI条目之后也是如此。
我怎么才能解决这个问题?
发布于 2014-10-12 04:26:58
Heroku支持Python版本的2.4.4至3.4.1。
您使用的教程是为Python2.7.8设计的,这就是您的应用程序不能在本地工作的原因。如果您要将应用程序推上Heroku,它将正常工作。
这里有两个选项,要么在本地计算机上安装Python2.7,要么修改教程以使用Python3.x
对于第一个选项,使用包管理器或其他普通工具,请安装Python2.x。如果您正在使用红帽或其他基于rpm的发行版(如centos、fedora等)注意不要覆盖系统Python,因为像yum这样的rpm工具将停止工作。
一旦安装了Python2.7.x,就必须针对Python的那个版本安装pip和setuptools。最后,创建您的虚拟环境,然后继续本教程。
如果您想继续使用Python3.3,那么您必须从您克隆的存储库中进行以下调整:
runtime.txt中,将python-2.7.8更改为python-3.3requirements.txt更改为:
django-工具带您不需要其他任何东西,django-toolbelt只是一个元包,它将安装django、gunicorn、psycopg2、dj数据库-url和dj-静态程序包。
创建一个新的虚拟环境,然后安装这些需求。
https://stackoverflow.com/questions/26315455
复制相似问题