Python 2.6がデフォルトのPythonとしてインストールされているコンピュータがあります。その後、Python 2.7をインストールし、新しいインストールへのシンボリックリンクとして/usr/bin/pythonを手動で作成しました。
だから私はやるコマンドが見つからない問題が発生しました。再インストールしようとしています。
sudo apt-get remove command-not-found
次のエラーが発生します。
/usr/bin/python does not match the
python default version. It must be
reset to point to python2.6
しかし、私は本当にPython 2.7がデフォルトであることを願っています。この混乱をどのように解決しますか?
答え1
オペレーティングシステムでデフォルトのPython(またはPerlなど)を変更する本物悪い考え。インタプリタは実際にはオペレーティングシステムの一部であり、そのバージョンのインタプリタで使用するために特別に書かれた他のオペレーティングシステムコンポーネントがあります。
たとえば、Redhatでシステムソフトウェアアップデートを実行するyumツールはPythonアプリケーションです。あなたは本当にこれを壊したくありません。これらのアプリケーションは、インストールしている特定の(非標準の)Pythonモジュールによって異なります。インストールするバージョンでは使用できない場合があります。たとえば、Ubuntuでは、Pythonで書かれた組み込みOSツールの一部が、Python標準ライブラリの一部ではなくStormというORMを使用していると思います。新しくインストールしたPython 2.7に期待される特定のバージョンのStormモジュールがインストールされていますか?ストーム版ありますか?いいえ?その場合、オペレーティングシステムの一部が破損しています。
正しい方法は、好みのPythonバージョンをインストールし、.bash_profile、パスなどを設定して使用するユーザーアカウントを設定することです。 Pythonのvirtualenvモジュールを見ることもできます。
答え2
ピエンブ
https://github.com/pyenv/pyenv
Pyenvを使用すると、個々のユーザーに対してsudoを使用することなく、次のように複数のPythonバージョンを管理できます。Node.js NVMそしてRuby RVM。
Pyenvをインストールします。
curl https://pyenv.run | bash
次に、次に追加します.bashrc
。
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
インストールするPythonのバージョンを見つけます。
pyenv install --list
必要なPythonバージョンをインストールします。
# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# Build and install a Python version from source.
pyenv install 3.8.0
利用可能なPythonのバージョンを一覧表示します。
pyenv versions
現在、私たちは以下を持っています:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
別のPythonバージョンを選択してください。
pyenv global 3.8.0
python --version
python3 --version
両方出力:
Python 3.8.0
これで、パッケージを通常どおりインストールして使用できるようになります。
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
以下を使用すると、すべてがクリーンな環境にローカルにインストールされていることを確認できます。
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
プロジェクトあたりの使用量
前のセクションでは、グローバル設定でpyenvを使用する方法について説明しました。
しかし、一般的に望むのは、各プロジェクトに特定のPythonとパッケージのバージョンを設定することです。その方法は次のとおりです。
まず、以前のように必要なPythonバージョンをインストールします。
次に、プロジェクトディレクトリで必要なPythonバージョンを設定します。
pyenv local 3.8.0
.python-version
バージョン文字列を含むファイルを生成します。
それでは、プロジェクト用にローカルにパッケージをインストールしてみましょう。 TODO:良い方法がないようです。https://stackoverflow.com/questions/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
今、誰かがあなたのプロジェクトを使いたいときは、次のようにします。
pyenv local
これにより、Pythonのバージョンが正しいバージョンに設定されます。
関連トピック:
- https://askubuntu.com/questions/682869/how-do-i-install-a- Different-python-version-using-apt-get
- 複数のPythonバージョンを管理する正しい方法は何ですか?
- https://stackoverflow.com/questions/10960805/apt-get-install-for- Different-python-versions/59268046#59268046
Ubuntu 18.04、pyenv 1.2.15でテストされました。
答え3
この混乱をどのように解決しますか?
ただ再インストールします。python
。変更はキャンセルされます(記号リンク)。
なぜデフォルトとして使用するのですか?必要に応じて、python2.7
(実行可能)スクリプトの先頭に(shebang)を使用または含めます。#!/usr/bin/python2.7
必ず欲しいとこだわるならpython2.7
システム全体のデフォルトとして、最新バージョンのUbuntuが使用されます(現在のUbuntu 11.04、コード名Natty)。このバージョンをデフォルトバージョンとして使用します。
今後はシンボリックリンクと同様に手動介入を避けてください。これは、配布管理ファイル、特にPythonインストールなどの複雑なファイルの場合に特に当てはまります。
答え4
私たちはMacとUbuntuに多くのPythonディストリビューションを配置しました。ここに私が推奨するものがあります。
システムPythonを邪魔しないでください。絶対に使用しないでください。
主要なPythonディストリビューションのみが必要な場合は、ダウンロードしてインストールしてください。千思考から。インストール時に「マイシステムPythonに設定」を選択すると、CanopyのGUIパッケージマネージャからパッケージをインストールできます。
pip
CanopyはPyPiパッケージマネージャコマンドとも互換性があるため、パッケージ(たとえばpip install python-twitter
)をインストールできます。
- 仮想環境を使用する予定の場合(つまり、Pythonプログラムを開発しており、各プログラムに専用のクリーンなPython環境を持ち、それらを簡単に切り替えることができるようにしたい場合)、CanopyよりもAnacondaをお勧めします。仮想環境管理ツール。これはあなたを作るでしょう