在heroku python教程中,virtualenv发布安装wsgiref(ez_setup语法错误?)

我正在阅读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.

创建新的虚拟环境,然后安装这些要求.

点赞