web-dev-qa-db-ja.com

Python pipを使用してvirtualenvにインストールされていないパッケージ

ツイストのインストールに問題があります

pip --version

/home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.Egg(python 2.7)のpip 1.1

仮想環境の作成

chris@chris-mint ~/GL/GLBackend $ Sudo virtualenv -p python2.7 glenv

インタプリタ/usr/bin/python2.7を使用してvirtualenvを実行新しいpython glenv/bin/python2.7で実行可能ファイルまたglenv/bin/pythonに実行可能ファイルを作成します。 .................................................. .................................................. .................................................. ................................完了。pipのインストール..............完了しました。

念のため、すべての権限を有効にします

chris@chris-mint ~/GL/GLBackend $ Sudo chmod -R 777 glenv

chris@chris-mint ~/GL/GLBackend $ source glenv/bin/activate


(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

argparse == 1.2.1 distribute == 0.6.24 wsgiref == 0.1.2

ここではインストール済みとしてツイストはリストされていません

(glenv)chris@chris-mint ~/GL/GLBackend $ Sudo pip install twisted

要件はすでに満たされています(アップグレードするには--upgradeを使用):/usr/local/lib/python2.7/dist-packagesでツイストされています要件は既に​​満たされています(アップグレードするには--upgradeを使用):/でzope.interface> = 3.6.0 usr/local/lib/python2.7/dist-packages(twistedから)要件は既に​​満たされています(--upgradeを使用してアップグレード):/usr/local/lib/python2.7/dist-packages(zope.interfaceから)で配布します> = 3.6.0-> twisted)クリーンアップ...(glenv)chris @ chris-mint〜/ GL/GLBackend $ pip uninstall twisted要件twisted、インストールされていない要件をアンインストールできません/home/chris/.pip/に完全なログを保存しますpip.log

ただし、インストールすると、既にインストールされていると表示されます。インストールを強制します:

Sudo pip install -I twisted

ツイストのダウンロード/アンパックTwisted-12.3.0.tar.bz2のダウンロード(2.6Mb):2.6Mbがダウンロードされましたパッケージtwistedのsetup.py Egg_infoを実行しています。 。 。

ねじれたzope.interfaceが正常にインストールされました。

それでもまだインストールされていません

(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

argparse == 1.2.1 distribute == 0.6.24 wsgiref == 0.1.2

** twistedを使用するPythonスクリプトを実行しようとすると、twistedがインストールされていないというエラーが表示されます。

ImportError:twisted.python **という名前のモジュールはありません

34
sav

ここでの問題は、使用すべきでないときにSudoを使用していることです。そして、それはpip/usr/local/libの代わりに~/glenv/libにインストールしようとする原因になります。 (また、Sudoを使用しているため、正常に実行されていますが、venvでシステムサイトパッケージを許可していないため、それは役に立ちません。)

Sudo pipがこの動作につながる理由はいくつかありますが、最も可能性が高いのは、ほとんどのシステム(すぐにアクセスできるさまざまなMacおよびRHEL/CentOSボックスを含む)で、sudoersファイルが環境をリセットすることです。その後、ホワイトリストに登録された少数の環境変数を追加し直します。つまり、Sudo pipを実行すると、virtualenvが設定する環境変数が表示されないため、デフォルトの処理に戻り、venvではなくシステムPythonにインストールされます。

しかし、実際には、それは問題ではありませんなぜこれは起こっています。答えは同じです:pip installの代わりにSudo pip installを実行するだけです。

alsoSudo呼び出しでvirtualenvを削除したいことに注意してください。これにより、おそらくvenvが誤って設定されることになります(そのため、Sudo chmodが必要です。それ以外の場合は必要です)。ユーザーのホームディレクトリの下にインストールすることの全体的なポイントは、通常のユーザー権限でインストールできることです。

補足として、1.8および1.2にはいくつかのバグ修正と改善があるため、新しいvirtualenv/pipにアップグレードすることもできます。しかし、最新バージョン(1.8.4および1.2.1)でもまったく同じ問題が発生することを確認したため、ここでは関係ないと思います。

57
abarnert