Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在heroku python教程中,virtualenv发布了安装wsgiref(ez_安装语法错误?)_Python_Heroku_Virtualenv_Wsgi - Fatal编程技术网

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

在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_

我正在学习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
下载/解包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,我也有类似的问题