3

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再び機能する可能性のあるアイデアに感謝します。

4

3 に答える 3

5

モジュールが見つからない場合は、間違いなく何か怪しいことが起こっていますtime-モジュールが実際にPythonバイナリ自体に組み込まれていることを知っている限り、削除された可能性のあるtime.pyまたはファイルがあるかのようではありません。time.sovirtualenv の Python が何らかの理由で壊れているか、環境に問題があるようです。

疑わしいPYTHONHOME変数を設定すると、必要なファイルが見つからないなど、Python にさまざまな問題が発生する可能性がありますが、この場合は、virtualenv が壊れているという事実だと思います。実際、PythonAnywhere で古い virtualenv を自分で試したところ、同じ問題が発生しました。アップグレードの結果、おそらく Debian から Ubuntu への最近のアップグレードの結果、virtualenv が作成するシンボリック リンクが壊れているように見えます。

可能であれば、新しい virtualenv を再作成し、そこから実行するだけです。原則として、コードのまったく同じバージョンで新しい virtualenv を作成できるように、要件ファイルを作成するために使用できますが、問題は、このファイル QED を作成するためにpip実行できないことです。pipシステム Python を使用しpipて virtualenv から依存関係を実行して取得する賢い方法はおそらくありますが、それはトリッキーになるでしょう。そのように動作するようには設計されていません。

または、PA 開発者に連絡することもできます。一部のユーザーは、アップグレードの前後に仮想環境に問題があり、問題を解決できる巧妙なスクリプトを持っている可能性があることを知っています。新しい virtualenv を構築して使用するだけでも、私は彼らに連絡して、この問題について知っていることを確認し、将来のアップグレードのためにそれを認識できるようにします。

于 2013-07-16T10:22:09.777 に答える
2

今日の午後、これが私に起こりました。から にアップグレードしMint 14ましMint 15たが、前者のシステム python は 2.7.3 で、後者は 2.7.4 を使用しているようです。virtualenv(python 2.7.3を使用)を削除してこれを修正し、python 2.7.4を使用して再作成しました。

私の簡単なスクリーンキャストを確認してください。その中で、次のことを示します。

  • Python環境が壊れています
  • Python envを再作成すると機能します
于 2013-08-15T20:04:39.837 に答える