Virtualenv: [Mac] 尝试创建 python 虚拟环境但得到 OSError

创建于 2015-08-25  ·  22评论  ·  资料来源: pypa/virtualenv

Mac OS X:10.9.5
点 7.1.2
虚拟环境 13.1.2
Python:Python 2.7.10 :: Anaconda 2.3.0 (x86_64)

Shuais-MacBook-Pro:Google Drive shuaiwang$ virtualenv ENV
ENV/bin/python 中的新 python 可执行文件
安装 setuptools、pip、wheel...
命令 "/Users/shuaiwang/Google Drive/ENV/bin/python" -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel 的完整输出:
回溯(最近一次通话最后):
文件 ”",第 1 行,在
文件“ /Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/init.py ”,第13行,在
文件“ /Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/utils/init.py ”,第15行,在
文件“/Users/shuaiwang/anaconda/lib/python2.7/zipfile.py”,第 6 行,在
导入 io
文件“/Users/shuaiwang/anaconda/lib/python2.7/io.py”,第 51 行,在
导入_io
ImportError: dlopen(/Users/shuaiwang/Google Drive/ENV/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyErr_ReplaceException
引用自:/Users/shuaiwang/Google Drive/ENV/lib/python2.7/lib-dynload/_io.so
预期于:动态查找


...安装 setuptools、pip、wheel...完成。
回溯(最近一次通话最后):
文件“/Users/shuaiwang/anaconda/bin/virtualenv”,第 11 行,在
sys.exit(main())
文件“/Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv.py”,第 832 行,在 main
符号链接=选项.符号链接)
文件“/Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv.py”,第 1004 行,在 create_environment
install_wheel(to_install,py_executable,search_dirs)
文件“/Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv.py”,第 969 行,在 install_wheel
'PIP_NO_INDEX':'1'
文件“/Users/shuaiwang/anaconda/lib/python2.7/site-packages/virtualenv.py”,第 910 行,在 call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command "/Users/shuaiwang/Google Drive/ENV/bin/python" -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with错误代码 1

最有用的评论

我对 conda 和 virtualenv 也有类似的问题。 我能够使用以下命令成功安装和激活环境:
conda install -c anaconda virtualenv=15.1.0

所有22条评论

我有完全相同的错误,并且我使用的是非常相似的设置:

  • Mac 10.10.3
  • 点 7.1.2
  • 虚拟环境 13.0.1
  • Python 2.7.10 :: Anaconda 2.2.0 (x86_64)

@grisaitis #788 是 #788 的副本? :D

是的,目前这看起来像是一个 conda python 问题。

哎呀! 抱歉,我的意思是它可能与此重复: https ://github.com/pypa/virtualenv/issues/741

如果您在https://github.com/conda/conda/issues/1367中没有看到,则可以通过降级到 Python 2.7.9 来“修复”这个问题

实际上,它不是固定的(我知道这可能是 condo/virtualenv 共同问题)。

我对 Python 2.7.11 和 Python 3.5.1 和 conda 3.18.9(和 pip 7.1.2)有同样的问题。
在 Python 3.5.1 中,虚拟环境创建失败并出现“virtualenv”和“pyvenv”(错误略有不同)。

@jenisys请您粘贴实际错误吗?

使用基于 python 2.7.11 和 virtualenv 13.0.1 的 conda 环境,我得到了上面描述的类似错误(但现在缺少另一个 CPython 符号);

# -- CASE: Using conda environment "py27" with python 2.7.11
# INSTALLED: virtualenv 13.0.1, pip 7.1.2, wheel 0.26.0
$ virtualenv xxx
New python executable in xxx/bin/python
Installing setuptools, pip, wheel...
  Complete output from command /Users/alice/tmp/venv/xxx/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
  Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv_support/pip-7.0.1-py2.py3-none-any.whl/pip/__init__.py", line 13, in <module>
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv_support/pip-7.0.1-py2.py3-none-any.whl/pip/utils/__init__.py", line 15, in <module>
  File "/Users/alice/conda/envs/py27/lib/python2.7/zipfile.py", line 6, in <module>
    import io
  File "/Users/alice/conda/envs/py27/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/Users/alice/tmp/venv/xxx/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /Users/alice/tmp/venv/xxx/lib/python2.7/lib-dynload/_io.so
  Expected in: dynamic lookup

----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/Users/alice/conda/envs/py27/bin/virtualenv", line 6, in <module>
    sys.exit(main())
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv.py", line 832, in main
    symlink=options.symlink)
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv.py", line 1004, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv.py", line 969, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/Users/alice/conda/envs/py27/lib/python2.7/site-packages/virtualenv.py", line 910, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/alice/tmp/venv/xxx/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 1

使用带有 python 3.5.1 的 conda 环境,错误看起来略有不同:

# -- CASE: Using conda environment "py35" with python 3.5.1
# INSTALLED: virtualenv 13.1.2, pip 7.1.2, wheel 0.26.0
$ virtualenv --verbose xxx2
Using base prefix '/Users/alice/conda/envs/py35'
Creating xxx2/lib/python3.5
Symlinking Python bootstrap modules
  Symlinking xxx2/lib/python3.5/config-3.5m
  Symlinking xxx2/lib/python3.5/lib-dynload
  Symlinking xxx2/lib/python3.5/plat-darwin
  Symlinking xxx2/lib/python3.5/os.py
  ...
  Symlinking xxx2/lib/python3.5/_bootlocale.py
Creating xxx2/lib/python3.5/site-packages
Writing xxx2/lib/python3.5/site.py
Writing xxx2/lib/python3.5/orig-prefix.txt
Writing xxx2/lib/python3.5/no-global-site-packages.txt
Creating parent directories for xxx2/include
Symlinking xxx2/include/python3.5m
Creating xxx2/bin
New python executable in xxx2/bin/python3
Changed mode of xxx2/bin/python3 to 0o755
Also creating executable in xxx2/bin/python
Changed mode of xxx2/bin/python to 0o755
Testing executable with xxx2/bin/python3 -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))"
ERROR: The executable xxx2/bin/python3 is not functioning
ERROR: It thinks sys.prefix is '/Users/alice/tmp/venv' (should be '/Users/alice/tmp/venv/xxx2')
ERROR: virtualenv is not compatible with this system or executable

当我在 conda 环境中使用pyvenv时(正如 Python 3.x 所预期的那样),我收到另一个与缺少“确保 pip”模块相关的错误(我假设是 conda 内部问题)。

我这里也有同样的问题,有人能指点我解决这个问题的方法吗? 既然关门了,一定要解决吧?

@icrtiou它在这里关闭,因为它是一个 conda 问题(上面提到了问题编号)。 看起来它还没有修复,但您应该查看 conda 票以获取更多信息。

当我尝试重新创建环境而不首先删除以前的环境时,我遇到了类似的错误(不使用 anaconda,使用 brew install 安装了 python)。

在旧环境路径的 rm -rf 之后,错误得到了解决......

我对 conda 和 virtualenv 也有类似的问题。 我能够使用以下命令成功安装和激活环境:
conda install -c anaconda virtualenv=15.1.0

谢谢!! 这对我有用。

我的解决方案是将默认 python 和 pip 更改为 /user/bin/python 而不是 conda 版本
注意:在第一个 conda 错误 virtualenvs 文件夹已经创建并存储了 conda 的路径和设置之后,因此需要先删除该文件夹,然后再创建一个新的 virtualenvs 文件夹

rm -rf .virtualenvs/ # 移除
source virtualenvwrapper.sh # 创建 bew virtualenvs

@RubenDuran提出的解决方案对我有用。

我没有使用 anaconda 并且遇到了这个问题。 只是尝试使用 pyenv 和 virtualenvwrapper。 我发誓这以前有效,但我正在运行它来创建一个新的 virtualenv:

pyenv shell 3.6.3
mkvirtualenv my_new_env

这将产生与上述类似的堆栈跟踪。 为了修复它,我安装了pyenv-virtualenvwrapper 。 然后以下是我如何让它工作:

pyenv shell 3.6.3
pyenv virtualenvwrapper
mkvirtualenv my_new_env

不完全确定发生了什么,但它正在工作,并认为我会分享以防其他人遇到类似问题。

@RubenDuran你是超级巨星! 您的解决方案对我来说非常有效。

@RubenDuran非常感谢!

@RubenDuran解决方案再次奏效! 谢谢!!!

如果您有 conda,则为您的项目创建虚拟环境的解决方案。 我有一个类似的问题,我尝试了以下命令,它对我有用。
Ubuntu 16.04
Python 2.7.14 :: Anaconda, Inc.

conda create -n yourenvname python=x.x anaconda

_yourenvname_ 是您将要创建和使用的虚拟环境的名称。
_pyrhon=x.x_:选择你想在这个环境中使用的python版本

你好,
我在centos 7上面临同样的情况。我用以下几行解决了这个问题:

yum install epel-release

百胜安装 python-pip

点安装 -U 点

yum -y 安装 python-virtualenv

yum -y 安装 python-virtualenvwrapper

$ export WORKON_HOME=~/.virtualenvs
$ 源 /usr/bin/virtualenvwrapper.sh
$ mkvirtualenv myapp
$ 停用
$ workon myapp

此页面是否有帮助?
0 / 5 - 0 等级