私はこのチュートリアルに従っていました 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
--user
フラグを設定する必要はありません。 virtualenv(virtualenv flask
)を作成したら、それをアクティブ化します:source flask/bin/activate
。シェルは(flask) ~>
のようになります。
Virtualenvがアクティブ化されると、問題なくインストールパッケージをpipできるようになります。たとえば、pip install numpy
です。それらは次の場所にインストールされます:lib/python2.6/site-packages/
(使用しているPythonのどのバージョンでも))
〜/ .pipにpip.confファイルがあります。そこで、コマンドgedit pip.conf
を使用してフラグuser = trueをuser = falseに変更しました。その後、仮想環境を正常に作成できます。
私の場合、/etc/pip.conf
にuser=true
を密かに設定するファイルがありました。そのため、virtualenvをアクティブ化するたびに、その構成はvirtualenvに影響を与えました。
その行を削除するのがうまくいきました。
一部の人々は、/etc/pip.conf
を編集することを提案します。これは、(i)スーパーユーザー権限を必要とし、(ii)間違った場合にシステム全体を破壊する可能性があります。そのため、ユーザーだけに保持することをお勧めします。
テキストエディタでup$HOME/.pip/pip.conf
を開きます。存在しない場合(私のManjaroマシンの場合)、作成します。次に、以下の行を追加し、保存して閉じます。
[global]
user=false
プログラムの設定を変更するときは、可能であれば$HOME
でそれを行うことをお勧めします。これにより、(i)更新間で設定が維持され、システムが再インストールされます(もちろん、ディスクを/
と/home
に分離した場合)および(ii)この場合、pip
のように、プログラムのさらなるアップグレードが中断されることはありません。
私の場合、それはカスタムでしたpython anacondaからのインストールがシステムのインストールを妨害していました。確認してくださいwhich pip
...解決策は、Pythonのカスタムインストールを削除または移動することです。
私の場合、python disco
mapreduceライブラリに対してmake test
を実行していました。
そのため、Makefile
テストセクションを変更し、--user
フラグを削除しました。