简体   繁体   English

在Mac Sierra上随带自制软件安装的virtualenvwrapper的错误消息

[英]Error message for virtualenvwrapper installed with homebrew on Mac Sierra

I installed virtualenv and virtualenvwrapper using homebrew, but am getting the following error when I try source virtualenvwrapper.sh 我使用自制软件安装了virtualenv和virtualenvwrapper,但是尝试source virtualenvwrapper.sh时出现以下错误

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper/hook_loader.py", line 16, in <module>
    from stevedore import ExtensionManager
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/stevedore/__init__.py", line 11, in <module>
    from .extension import ExtensionManager
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/stevedore/extension.py", line 17, in <module>
    import pkg_resources
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/Library/Python/2.7/site-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is
set properly.

My .bash_profile looks like this: 我的.bash_profile看起来像这样:

export PATH=/usr/local/bin:$PATH
# virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

I have a mac running Sierra (10.12.4). 我有一台运行Sierra(10.12.4)的Mac。

Any help appreciated! 任何帮助表示赞赏!

In case anyone in the future finds this helpful, what worked for me was to install conda instead of virtualenv. 万一将来有人发现这有用,对我有用的是安装conda而不是virtualenv。

For whatever reason after installing conda, virtualenv started working too. 安装conda后,无论出于何种原因,virtualenv也开始工作。

I've got macOS 10.12.6 and python 2 installed via homebrew. 我已经通过自制软件安装了macOS 10.12.6和python 2。

What worked for me was to make sure that homebrew python is in front of the system python in $PATH env variable by adding export PATH="/usr/local/opt/python/libexec/bin:$PATH" . 对我有用的是,通过添加export PATH="/usr/local/opt/python/libexec/bin:$PATH"确保自制python在$PATH env变量中位于系统python的前面。

The relevant part of my .zshrc looks like this: 我的.zshrc的相关部分如下所示:

## Python
export PATH="/usr/local/opt/python/libexec/bin:$PATH"  # homebrew python 2 in front of the system one
export WORKON_HOME="$HOME/Virtualenvs"
source /usr/local/bin/virtualenvwrapper.sh

I've got this idea from the formula documentation: 我从公式文档中得到了这个主意:

» brew info python
python: stable 2.7.13 (bottled), HEAD
# (...)
==> Caveats
This formula installs a python2 executable to /usr/local/bin.
If you wish to have this formula's python executable in your PATH then add
the following to ~/.zshrc:
  export PATH="/usr/local/opt/python/libexec/bin:$PATH"
# (...)

I suspect for bash it is the same. 我怀疑bash是一样的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM