1

私は仮想環境の内部動作を完全には理解していない可能性があることを認めてこれを前置きしますので、私が完全な失敗を犯した場合はご容赦ください。

私のデスクトップ(Mac OS X 10.7 + Python 2.7)には、Pythonで構築しているWebアプリケーションを格納する仮想環境があります(フレームワークとしてFlaskを使用)。ラップトップで作業をしたかったので、仮想環境とコードを含むディレクトリを圧縮して、ラップトップ(Mac OS X 10.7 + Python 2.7)に転送しました。

解凍した後、アプリケーションを起動しようとすると、次のメッセージが表示されました。

(venv)****:*** ***$ python runserver.py 
Traceback (most recent call last):
  File "runserver.py", line 2, in <module>
    from weirdcanada import app
  File "/Users/****/****/weirdcanada/weirdcanada/__init__.py", line 3, in <module>
    import weirdcanada.views
  File "/Users/****/****/weirdcanada/weirdcanada/views.py", line 18, in <module>
    from flaskext.principal import AnonymousIdentity
ImportError: No module named flaskext.principal

次に試しpip install flask-principalてみましたが、インストールした後、アプリケーションを再実行したところ、同じエラーが発生しました。site-packages仮想環境でチェックしてflask-principalインストールしました。

私の質問:

  1. 仮想環境のポイントを誤解していますか?私が持っているように仮想環境をコピーできるべきですか?一貫性と移植性が主な特徴だと思いました。
  2. どうすればこれを修正できますか?

ご協力いただきありがとうございます!

4

2 に答える 2

2

私はこの行を変更するとかなり確信しています:

    from flaskext.principal

    from flask.ext.principal

動作するはずです。

システムに3つの仮想環境がインストールされています(Mac OSX 10.6 + Python2.7)。新しいvirtualenvを作成しましたが、突然、他のvirtualenvで正常に機能しているコードがここで機能しなくなりました。その場合、flaskext.wtfが原因でした。

両方のvirtualenvでフラスコのバージョンとその拡張機能を確認しましたが、まったく同じであったため、バージョンの問題も問題外でした。

なぜこれが発生するのかは意味がありませんが、とにかくこれを試して返信してください。

于 2012-07-07T17:42:10.447 に答える
0

よくわかりませんが、システム全体のPythonインストールと呼んでいますか、それとも仮想環境にあるPythonバイナリと呼んでいますか?仮想環境には明らかに独自のPythonバイナリインタープリターがあり、インストールを行うには、そのバイナリを使用してすべてのパッケージをインストールする必要があります。つまり、システム全体のpythonバイナリが/ usr / bin /などにあり、別のバイナリが/ var / www / myapp / env /bin/などにあるはずです。これは、仮想環境でアプリをインストールするために必要なものです。

于 2012-07-07T16:40:22.657 に答える