无法在Mac上安装wsgiref

Zha*_* Yi 10 python pip wsgiref

我wsgiref在Mac 上安装时遇到问题.

$ python --version
Python 3.6.0 :: Anaconda 4.3.1 (x86_64)
$ pip --version
pip 9.0.1 from /anaconda/lib/python3.6/site-packages (python 3.6)
Run Code Online (Sandbox Code Playgroud)

我的requirements.txt文件如下所示.

numpy==1.8.1
scipy==0.14.0
pyzmq==14.3.1
pandas==0.14.0
Jinja2==2.7.3
MarkupSafe==0.23
backports.ssl-match-hostname==3.4.0.2
gnureadline==6.3.3
ipython==2.1.0
matplotlib==1.3.1
nose==1.3.3
openpyxl==1.8.6
patsy==0.2.1
pyparsing==2.0.2
python-dateutil==2.2
pytz==2014.4
scikit-learn==0.14.1
six==1.7.3
tornado==3.2.2
wsgiref==0.1.2
statsmodels==0.5.0
Run Code Online (Sandbox Code Playgroud)

当我跑步时pip install -r requirement.txt,我得到了以下错误

Collecting wsgiref==0.1.2 (from -r requirements.txt (line 20))
  Using cached wsgiref-0.1.2.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/xs/y0pbzxkn7gqcdtrz4cpxtwrw0000gn/T/pip-build-hkiqbu1j/wsgiref/setup.py", line 5, in <module>
        import ez_setup
      File "/private/var/folders/xs/y0pbzxkn7gqcdtrz4cpxtwrw0000gn/T/pip-build-hkiqbu1j/wsgiref/ez_setup/__init__.py", line 170
        print "Setuptools version",version,"or greater has been installed."
                                 ^
    SyntaxError: Missing parentheses in call to 'print'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/xs/y0pbzxkn7gqcdtrz4cpxtwrw0000gn/T/pip-build-hkiqbu1j/wsgiref/
Run Code Online (Sandbox Code Playgroud)

我试图跑pip install --upgrade setuptools,sudo easy_install -U setuptools但没有帮助.我怎么解决这个问题?

Ane*_*ran 14

wsgiref已经被包含在Python 3中作为标准库...所以如果你正在尝试使用Python 3,那就继续导入wsgiref吧.


Jia*_*Cai 4

根据这一行SyntaxError: Missing parentheses in call to 'print',我认为它需要 Python 2.x 才能运行setup.py. 是否使用括号inprint是Python 2和Python 3语法的不同。

这是Github 问题的解决方案:

有一些修复程序可以让您正常运行,按工作量从最少到最多的顺序排列:

  1. 根据您的意愿安装切换到 python2.7。

  2. 尝试使用 pip install --upgrade wsgiref 升级 wsgiref,并查看最新版本是否适用于您的设置,以及是否适用(如果不适用,您会注意到 http/webhooks 的东西不起作用。

  3. 如果您尝试 2) 并且成功,请在此处提交 PR,并在requirements.txt 中包含升级版本。(您可以使用 pip freeze 找出您拥有的版本)。

您可以在此处找到有关语法差异的更多信息

  • 删除依赖,使用python3的`wsgiref` [正确答案](/sf/answers/3491226581/) (2认同)