Pipenvをマシンにインストールして、そのマシンのすべてのユーザーが使用できるようにしたいのですが、システムのPythonセットアップをいじりたくありません。
私は実行できますsudo pip install pipenv
が、それは先に進み、システムPythonにインストールされている一連のパッケージのバージョンを変更します(私はScientific Linux 7.4を使用しています)。私はむしろ、Linuxディストリビューションによって提供されるとおりにシステムPythonを維持したいと思います(コアシステムツールが特定の方法であることに依存している可能性があるため、システムPythonをいじることは悪い考えです)。
できますpip install --user pipenv
が、pipenvを使用できるのはユーザーだけです。
したがって、2つの質問:
1.システムPythonを変更することを不必要に恐れていますか?システムPython内でパッケージを更新することは実際に問題ありませんか?
2.私の注意が正当化される場合、pip install
システムPythonを変更せずに、すべてのユーザーにとって最善の方法(つまり、Pipenvなどのツール)は何ですか?
理想的には、ユーザーが入力するだけでpipenvを使用できるようpipenv
にし、あいまいなディレクトリにあるファイルを実行する必要がないようにします。
PS理想的な状況は、pipenvが私のディストリビューションから「安全な」パッケージとして入手可能であったことですが、残念ながらそうではありません。私はvirtualenvsも知っていますが、それらは特定のプロジェクトの開発と展開のためのものであり、必ずしもシステム全体のツールに理想的であるとは限りません(ただし、修正する準備ができています)。
いいえ、システムPythonを変更することを恐れることは決してありません。あなたの注意は正当化されます。
公式ディストリビューション、Anaconda、pyenvのpython-build、または自己コンパイルされたソースのいずれかから、すべてのユーザーがグローバルな(ただしシステムではない)Pythonインストールを共有できるようにすることをお勧めします。次に、各ユーザーはpip install --user
それぞれのホームディレクトリに対して独自の実行を行うか、sudoerとして、グローバルに利用可能なツールをカスタム管理された非システムのグローバルPythonにインストールできます。
編集:仮想環境とシンボリックリンクでもこれを行うことができることを言及するのを忘れました。Pipenvの例(必要に応じてパスを変更できます):
python3 -m venv /opt/venvs/pipenv
/opt/venvs/pipenv/bin/pip install pipenv
ln -s /opt/venvs/pipenv/bin/pipenv /opt/bin/pipenv
python3 -m venv /opt/venvs/flake8
/opt/venvs/pipenv/bin/pip install flake8
ln -s /opt/venvs/pipenv/bin/flake8 /opt/bin/flake8
このようにして、互いに影響を与えることなく複数のツールをインストールできます。また、これをカスタム管理のPythonと組み合わせて、さらに安心することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加