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

In heroku python tutorial, virtualenv issues installing wsgiref (ez_setup syntax error?)

我正在学习Heroku教程"开始使用python"。我正准备使用virtualenv在本地构建环境,以便在本地运行测试应用程序。requirements.txt包括

1
wsgiref==0.1.2

到达该步骤后,virutalenv输出以下错误消息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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-u的设置是什么,即使在阅读了它令人担忧的pypi条目之后。

我怎么修这个?


Heroku支持python版本2.4.4到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和安装工具。最后,创建虚拟环境,然后继续本教程。

如果您想坚持使用python 3.3,那么必须从克隆的存储库中进行以下调整:

  • runtime.txt中,将python-2.7.8改为python-3.3
  • 将您的requirements.txt更改为以下内容:

    1
    django-toolbelt
  • 您不需要其他任何东西,django-toolbelt只是一个元包,它将安装django、gunicorn、psycopg2、dj数据库url和dj static。

    创建一个新的虚拟环境,然后安装这些需求。