【问题标题】:assert error when installing virtualenv with different python使用不同的 python 安装 virtualenv 时断言错误
【发布时间】:2011-02-15 00:55:38
【问题描述】:

我的服务器有 Python2.5 我想跳到最新的 Python(在我的例子中是 2.7.x)。我从源代码编译了 python,我下载了最新的 virtualenv (1.5.1)。

现在基本上我想做什么:

./packages/virtualenv/virtualenv.py --python=packages/Python-2.7/python env/

打字:

./packages/virtualenv/virtualenv.py

提供:

1.5.1

打字时:

packages/Python-2.7/python

提供:

Python 2.7 (r27:82500, Nov 21 2010, 23:19:15) 
[GCC 4.3.2] on linux2
(cut help mesage)
>>>

但是运行virutalenv会导致:

AssertionError:文件名 /packages/Python-2.7/Lib/os.py 不以以下任何前缀开头:['/usr/local']

无论这意味着什么,无论我是什么,或者我没有做错。

附: 在构建 env + python 时,我基于问题:How do I work around this problem creating a virtualenv environment with a custom-build Python?

【问题讨论】:

    标签: python virtualenv


    【解决方案1】:

    在阅读和搞砸this之后。

    我发现这个错误可能与在 python 运行 ./configure 时缺少 --prefix 有关。所以我运行了./configure --prefix=/Path/To/Where/I/Want/Python/After/Compilation/(在我的情况下是$HOME/packages/Python-2.7),然后我输入了make,然后是make install(没有使用sudo - 所以python被安全地放入我告诉它的位置当前用户不是 root)。在那之后,virtualenv 启动并没有因AssertionError 而崩溃,并且一切都像魅力一样运行。

    希望作者回答的这个问题最终会对某人有所帮助。 :)

    【讨论】:

    • 我在没有使用 ./configure 的 Windows 7 上遇到了这个问题。
    • 在 Windows 上,我通过全新安装解决了问题 - 请参阅:stackoverflow.com/questions/8688709/…
    • // ,你能用相对的--prefix 参数编译Python 吗?也就是说,如果编译后的Python被移动,通过--prefix给出的相对路径会保持相对吗?
    • 这对我有用(在 Ubuntu 上),只是当我意识到 Path/To/Python 不能与解压缩 tar.gz 的目录相同时。
    • 这假设您已经自己完成了构建和安装,对吧?而不是使用 pip 之类的东西来安装 virtualenv...
    【解决方案2】:

    我没有足够的代表将此添加为评论,而且这个问题已有 3 年历史,但这可能对某人有用。在 Windows 中,您必须找到 python.exe 的路径,但在 Linux/OS X 中,您似乎只是指向文件夹的路径。示例:

    Windows:

    virtualenv -p <PATH TO PYTHON.EXE> venv
    

    在当前目录的子文件夹“venv”中创建一个虚拟环境。

    【讨论】:

      【解决方案3】:

      我没有足够的代表来添加评论。 Mike's 回答拯救我的一天。我正在使用 Windows。

      我收到了错误:

      AssertionError: Filename C:\Python35\Lib\os.py does not start with any of these prefixes: ['c:\\python35', 'c:\\python35']
      

      我必须运行这个-

      virtualenv -p C:\Python35\python.exe venv
      

      还需要从以管理员身份打开的 cmd 运行它。否则会报错

      PermissionError: [WinError 5] Access is denied
      

      有足够代表发表评论的人请将此添加到Mike's 答案作为评论。然后我会清除我的。

      【讨论】:

        猜你喜欢
        • 2021-06-17
        • 2020-10-09
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 2012-04-07
        • 1970-01-01
        • 2022-12-18
        相关资源
        最近更新 更多