1

このコマンドで仮想環境を構築しました:

virtualenv env --distribute --no-site-packages

そして、いくつかのモジュール (django など) を pip を使用して env にインストールしました。

visgean@rewitaqia:~/scripty/project_name$ source ./env/bin/activate
(env)visgean@rewitaqia:~/scripty/project_name$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__file__
'/home/visgean/scripty/project_name/env/lib/python2.7/site-packages/django/__init__.pyc'

しかし、2台目のマシンで実行したい場合:

(env)user@debian:~/project_name$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django
>>> 

私は野生のエラーが表示されます!最初のマシンは ubuntu、2 番目のマシンは ubuntu です。/home/user/project_name/env/lib/python2.7 に壊れたリンクがいくつかあるようですが、それが問題ですか? もしそうなら、どうすればそれを防止/修復できますか?

4

2 に答える 2

2

virtualenv を 2 番目のマシンにコピーするだけの場合、問題が発生する可能性があります。virtualenv サイトから:

通常、環境は特定のパスに関連付けられています。つまり、環境を移動したり、別のコンピューターにコピーしたりすることはできません。次のコマンドを使用して、環境を修正して再配置可能にすることができます。

$ virtualenv --relocatable ENV

これにより、setuptools または distribution によって作成されたファイルの一部が相対パスを使用し、Python インタープリターの場所を使用して環境を選択する代わりに、すべてのスクリプトが activate_this.py を使用するように変更されます。

注: 環境にパッケージをインストールした後、これを実行する必要があります。環境を再配置可能にしてから新しいパッケージをインストールする場合は、virtualenv --relocatable を再度実行する必要があります。

于 2012-10-24T20:38:29.247 に答える
0

2台目のマシンに間違ったバージョンのpythonがあることに気付きました-debianにはpython2.7がなく、2.7をインストールするとpipが解決策になります

于 2012-10-24T20:54:49.070 に答える