【问题标题】:PythonAnywhere + virtualenv: "Could not find platform dependent libraries <exec_prefix>..."PythonAnywhere + virtualenv:“找不到平台相关库 <exec_prefix>...”
【发布时间】:2013-07-14 06:05:54
【问题描述】:

我在PythonAnywhere 的 virtualenv 中有一个在 Python 2.7.3 上运行的 Django (1.5.1) 站点。据我记得,过去一切都很好。最近,虽然除了一些 Django 代码我没有更改任何东西,但当我运行 pip 时收到以下消息:

(venv)11:34 ~ $ pip
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
  File "/*~*//venv/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/*~*//venv/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 16, in <module>
    import sys, os, zipimport, time, re, imp, types
ImportError: No module named time

不用说,pip 在产生上述错误后根本不起作用。

当我在激活 virtualenv 的情况下运行 python 时,我再次收到以下错误:

(venv)11:34 ~ $ python
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python 2.7.3 (default, Apr 29 2013, 15:12:04) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/*~*//.pythonstartup.py", line 1, in <module>
    import rlcompleter
ImportError: No module named rlcompleter
>>>

但是,此后,Python 控制台似乎处于正常工作状态。

在没有激活 virtualenv 的情况下,python 运行良好,没有任何错误。

几周前我上次运行pip 并安装了一些软件包时一切都很好,但现在pip 无法正常工作,尽管我的Django 站点的所有功能都运行良好。我感谢任何可以让pip 再次工作的想法。

【问题讨论】:

    标签: python django virtualenv pip pythonanywhere


    【解决方案1】:

    我今天收到这个错误。因为我使用 virtualenv,然后输入这个,但是,我的 python 脚本仍然包含这个 #!/usr/bin/python2.6 删除这句话就ok了

    【讨论】:

      【解决方案2】:

      今天下午我遇到了这种情况。我从Mint 14升级到Mint 15,看来前者的系统python是2.7.3,后者用的是2.7.4。我通过删除我的 virtualenv(使用 python 2.7.3)来解决这个问题,然后使用 python 2.7.4 重新创建它。

      查看我的quick screencast。在其中,我表明:

      • python环境坏了
      • 重新创建 python 环境使其工作

      【讨论】:

        【解决方案3】:

        如果找不到模块time,肯定会发生一些可疑的事情——据我所知,模块实际上是内置在Python二进制文件本身中的,所以它不像time.py或@ 987654323@ 可能已被删除的文件。看起来好像你的 virtualenv 中的 Python 已经以某种方式损坏了,或者环境中的某些东西把它弄乱了。

        设置一个可疑的PYTHONHOME 变量可能会给Python 带来各种麻烦,因为它找不到必要的文件,但我认为在这种情况下,virtualenv 已经损坏了。事实上,我自己只是在 PythonAnywhere 上尝试了一个旧的 virtualenv 并遇到了同样的问题。看起来 virtualenv 创建的符号链接由于升级而损坏,可能是最近从 Debian 升级到 Ubuntu。

        如果可能的话,我会简单地重新创建一个新的 virtualenv 并从那里运行。原则上你可以使用pip 来编写一个需求文件,这样你就可以使用完全相同的代码版本创建一个新的virtualenv,但问题是你不能运行pip 来创建这个文件,QED。使用系统 Python 运行 pip 并从您的 virtualenv 中获取依赖项可能有一种聪明的方法,但这会很棘手 - 它不是为这种方式设计的。

        您也可以联系 PA 开发人员 - 我知道有些用户在升级时确实遇到了他们的 virtualenvs 问题,他们可能有巧妙的脚本可以解决问题。即使您只是构建一个新的 virtualenv 并使用它,我也会与他们联系并确保他们知道这个问题,以便他们知道它以备将来升级。

        【讨论】:

        • +1 对 Cartroo 的建议重新创建一个新的 virtualenv。我们试图修复大部分来自 ubuntu 开关的 virtualenv 错误,但无法确定所有这些错误......
        猜你喜欢
        • 1970-01-01
        • 2013-01-10
        • 2022-08-18
        • 1970-01-01
        • 2013-10-18
        • 2015-01-24
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        相关资源
        最近更新 更多