web-dev-qa-db-ja.com

ピップのデフォルトの動作はvirtualenvと競合しますか?

私はこのチュートリアルに従っていました http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world/page/5

virtualenv flaskコマンドを実行すると、次のエラーメッセージが表示されました。

Can not perform a '--user' install. User site-packages are not visible in this virtualenv.

Virtualenvのポイントはユーザーが制御できる新しい環境を作成することであり、--userコマンドはすべてを特定の場所に配置するため、これは理にかなっています。開発環境の分離という目的を打ち破ります。

Pipのデフォルトは--userインストールになっているようですが、このデフォルトの動作を変更できますか?そして、さらに良いことに、pipでいつでもvirtualenvでNiceをプレイできますか?

明確にするために、これが私の端末の外観です。

MELCHIOR:miguelgrinberg-microblog megablanc$ virtualenv flask
New python executable in flask/bin/python
Installing setuptools, pip, wheel...
  Complete output from command /Users/megablanc/Dev...log/flask/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
  Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/Users/megablanc/Library/Python/2.7/bin/virtualenv", line 11, in <module>
    sys.exit(main())
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 832, in main
    symlink=options.symlink)
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 1004, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 969, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/Users/megablanc/Library/Python/2.7/lib/python/site-packages/virtualenv.py", line 910, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /Users/megablanc/Dev...log/flask/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 1
17
Nils Guillermin

--userフラグを設定する必要はありません。 virtualenv(virtualenv flask)を作成したら、それをアクティブ化します:source flask/bin/activate。シェルは(flask) ~>のようになります。

Virtualenvがアクティブ化されると、問題なくインストールパッケージをpipできるようになります。たとえば、pip install numpyです。それらは次の場所にインストールされます:lib/python2.6/site-packages/(使用しているPythonのどのバージョンでも))

21
benlaird

〜/ .pipにpip.confファイルがあります。そこで、コマンドgedit pip.confを使用してフラグuser = trueをuser = falseに変更しました。その後、仮想環境を正常に作成できます。

11

私の場合、/etc/pip.confuser=trueを密かに設定するファイルがありました。そのため、virtualenvをアクティブ化するたびに、その構成はvirtualenvに影響を与えました。

その行を削除するのがうまくいきました。

5
MewX

一部の人々は、/etc/pip.confを編集することを提案します。これは、(i)スーパーユーザー権限を必要とし、(ii)間違った場合にシステム全体を破壊する可能性があります。そのため、ユーザーだけに保持することをお勧めします。

テキストエディタでup$HOME/.pip/pip.confを開きます。存在しない場合(私のManjaroマシンの場合)、作成します。次に、以下の行を追加し、保存して閉じます。

[global]
user=false

プログラムの設定を変更するときは、可能であれば$HOMEでそれを行うことをお勧めします。これにより、(i)更新間で設定が維持され、システムが再インストールされます(もちろん、ディスクを//homeに分離した場合)および(ii)この場合、pipのように、プログラムのさらなるアップグレードが中断されることはありません。

2
Erdin Eray

私の場合、それはカスタムでしたpython anacondaからのインストールがシステムのインストールを妨害していました。確認してくださいwhich pip...解決策は、Pythonのカスタムインストールを削除または移動することです。

1
Pratik Khadloya

私の場合、python disco mapreduceライブラリに対してmake testを実行していました。

そのため、Makefileテストセクションを変更し、--userフラグを削除しました。

1
jmunsch