PythonAnywhere + 虚拟环境 : "Could not find platform dependent libraries <exec_prefix>..."

标签 python django virtualenv pip pythonanywhere

我在 PythonAnywhere 的虚拟环境中有一个运行在 Python 2.7.3 上的 Django (1.5.1) 站 pip 。 .据我所知,过去一切正常。最近,虽然除了一些 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 的所有功能都可以运行正好。我很感激任何能让 pip 重新工作的想法。

最佳答案

如果它找不到模块time,那肯定是有问题的——据我所知,模块实际上是内置在 Python 二进制文件本身中的,所以好像没有time.pytime.so 文件可能已被删除。看起来好像您的 virtualenv 中的 Python 以某种方式损坏了,或者环境中的某些东西弄乱了它。

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

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

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

关于PythonAnywhere + 虚拟环境 : "Could not find platform dependent libraries <exec_prefix>...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670107/

相关文章:

python - 虚拟环境中的kivy,窗口提供程序错误(linux)

virtualenv - 使安装在 virtualenv 中的软件包对 sphinx 可见

python - 如何在django中添加css、js、图片?

sql-server - 获取 'The data types nvarchar(max) and ntext are incompatible in the equal to operator.'

python - 如何在虚拟环境中使用python运行gwan?

python - 在ios中使用ecc进行加密

python - 重复属性的 Pandas 总和

python - Hangman Game - 列表中的重复字符问题

python - 如何将多个列表转换为python中的字典?

sql - 将字符串匹配到 Postgres 数据库列中的字符串数组