我正在阅读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_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 entry之后.
我怎样才能解决这个问题?
最佳答案 Heroku支持Python版本
2.4.4 through 3.4.1.
您使用的教程是为Python 2.7.8设计的,这就是您的应用程序无法在本地工作的原因.如果您要将应用程序推送到Heroku,它将正常工作.
这里有两个选项,您可以在本地计算机上安装Python 2.7,也可以修改教程以使用Python 3.x.
对于第一个选项,使用包管理器或其他常规工具,安装Python 2.x.如果您使用的是redhat或其他基于rpm的发行版(如centos,fedora等),请注意不要覆盖系统Python,因为像yum这样的rpm工具将停止工作.
一旦安装了Python 2.7.x,就必须针对该版本的Python安装pip和setuptools.最后,创建您的虚拟环境,然后继续本教程.
如果你想坚持使用Python 3.3,那么你必须从你克隆的存储库中进行以下调整:
>在runtime.txt中,将python-2.7.8更改为python-3.3
>将您的requirements.txt更改为以下内容:
django-toolbelt
你不需要任何其他东西,django-toolbelt只是一个元软件包,它将安装django,gunicorn,psycopg2,dj-database-url和dj-static.
创建新的虚拟环境,然后安装这些要求.