【问题标题】:how to create virtualenv with pypy?如何用pypy创建virtualenv?
【发布时间】:2012-11-14 17:47:12
【问题描述】:

运行以下命令

virtualenv -p /usr/local/bin/pypy pypy

错误退出

Running virtualenv with interpreter /usr/local/bin/pypy
New pypy executable in pypy/bin/pypy
debug: WARNING: Library path not found, using compiled-in sys.path.
debug: WARNING: 'sys.prefix' will not be set.
debug: WARNING: Make sure the pypy binary is kept inside its tree of files.
debug: WARNING: It is ok to create a symlink to it from somewhere else.
'import site' failed
AttributeError: 'module' object has no attribute 'prefix'
ERROR: The executable pypy/bin/pypy is not functioning
ERROR: It thinks sys.prefix is u'/Users/myname' (should be u'/Users/myname/pypy')
ERROR: virtualenv is not compatible with this system or executable

我正在使用 CPython 2.7.3 运行 Mac OS X 10.8.1 (Mountain Lion),并使用 Brew 安装了 pypy 1.9。 virtualenv 的版本是 1.8.4

使用直接从 pypy 网站下载的 Mac OS X 的预构建 pypy 二进制文件没有任何区别

【问题讨论】:

  • 我在 OS X 上遇到了同样的错误,并且拥有与你相同的 pypy 和 virtualenv 版本(也从 homebrew 安装了 pypy)

标签: python virtualenv pypy


【解决方案1】:

我得到了解决方案 只需使用 pypy3.exe 而不是 pypy.exe 下载文件夹中有两个 .exe

virtualenv -p C:/pypy3.7-v7.3.5-win64/pypy3.7-v7.3.5-win64/pypy3w.exe <folder_name>

默认情况下,python 带有 venv。但是 venv 没有 -p 使用 pip 安装 virtualenv 然后直接使用 virtualenv -p path/pypy3.exe 无需使用 python -m

【讨论】:

    【解决方案2】:

    对于windows,这对我有用:

    
    python -m virtualenv -p <Your PYPY installed path\pypy3.exe> <venv_name>
    
    

    【讨论】:

      【解决方案3】:

      使用 pypy-4.0.1 和 virtualenv 14.0.3,开箱即用时出现错误:

      Q:\>c:\pypy\bin\virtualenv -p c:\pypy\pypy.exe my_pypy_virtualenv
      Already using interpreter c:\pypy\pypy.exe
      New pypy executable in Q:\my_pypy_virtualenv\bin\pypy.exe
      debug: OperationError:
      debug:  operror-type: ImportError
      debug:  operror-value: No module named UserDict
      ERROR: The executable Q:\my_pypy_virtualenv\bin\pypy.exe is not functioning
      ERROR: It thinks sys.prefix is u'q:\\' (should be u'q:\\my_pypy_virtualenv')
      ERROR: virtualenv is not compatible with this system or executable
      Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.
      

      搜索UserDict* 的原始pypy 安装,我在lib-python\2.7 中找到了UserDict.py,但在virtualenv 的lib-python\2.7 中只有userdict.py,没有大写的User 文件。按照其他方案的例子,我删除了virtualenv的userdict.py,复制了原来的User*文件,重新运行了virtualenv命令,运行无误。

      【讨论】:

        【解决方案4】:

        我在使用 virtualenv 1.8.2 的 Windows 上遇到了同样的错误。 1.9 和 1.10 也存在类似问题。对我有用的是运行一次以创建目录,复制丢失的文件,然后再次运行以完成它。

        virtualenv -p c:\bin\pypy\pypy.exe pypy
        copy c:\bin\pypy\lib_pypy \virtualenvs\pypy
        copy c:\bin\pypy\lib-python \virtualenvs\pypy
        virtualenv -p c:\bin\pypy\pypy.exe pypy
        

        【讨论】:

        • 我已经确认这适用于 Windows7 的 PyPy 2.2.0。唯一的区别是 activate 位于 bin 子目录而不是 Scripts 子目录
        【解决方案5】:

        这似乎是 1.8.4 中的回归。在我的系统上尝试这个时,virtualenv 1.8.2 一切正常,然后我升级了,现在我得到了和你一样的错误。

        【讨论】:

        • 我降级到 1.8.2 并且成功了!谢谢!由于这是一个答案,我认为您应该提及 如何 降级到 1.8.2 sudo pip install virtualenv==1.8.2
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-14
        相关资源
        最近更新 更多