私の最終目標は、awscliをダウンロードしてインストールすることです。
http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html
私の目標を達成するためには、pythonとpipが必要なようです。
yumによるpythonのインストールがうまくいかないので、以下のように手動でpython3をダウンロードし、インストールしました。
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xf Python-3.6.1.tar.xz
cd Python-3.6.1.tar.xz
./configure
make
sudo make altinstall
を実行すると
pip3.6 --version
.
こんなのが出てくる。
Traceback (most recent call last):
File "/usr/local/bin/pip3.6", line 7, in <module>
from pip import main
ImportError: cannot import name 'main'
環境: RHEL 6.6 sshでアクセス
どうなっているのでしょうか?私のリナックスボックスにpipとpython3.6を正しくインストールする方法は?
編集部:
yum経由でインストールしようとすると失敗するので、yumを使わないようにしています。
[asemani@rcdc9pfda5r Python-3.6.1]$ sudo yum -y install python-pip
.
[sudo] password for asemeani:
Loaded plugins: security
Setting up Install Process
No package python-pip available.
Error: Nothing to do
Another Edit:
sysをインポートした後、sys.pathを呼び出すと、このようになります。
[asemani@rcdc9pfda5r Python-3.6.1]$ python3.6
Python 3.6.1 (default, Apr 28 2017, 11:03:27)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
>>> quit()
[asemani@rcdc9pfda5r Python-3.6.1]$ ls -l /usr/local/lib/python3.6/site-packages
total 32
-rw------- 1 root root 126 Apr 27 23:45 easy_install.py
drwx------ 11 root root 4096 Apr 27 23:45 pip
drwx------ 2 root root 4096 Apr 27 23:45 pip-9.0.1.dist-info
drwx------ 5 root root 4096 Apr 27 23:45 pkg_resources
drwx------ 2 root root 4096 Apr 27 23:45 __pycache__
-rw-r--r-- 1 root root 119 Apr 27 23:45 README.txt
drwx------ 5 root root 4096 Apr 27 23:45 setuptools
drwx------ 2 root root 4096 Apr 27 23:45 setuptools-28.8.0.dist-info
このエラーは、スクリプトが pip
という名前のパッケージを見つけることはできるが、正しいパッケージを見つけることはできないことを示しています。おそらく、古いバージョンの pip で、 main
メソッドを作成する前のものでしょう (python シェルから pip.__version__
を確認できます)。
私は、あなたがまだ別の古いバージョンのpythonをインストールしており、そのバージョンでpipを使用していることに賭けたいと思います。何らかの理由で pythonpath が py3.6 に対応したものでなく、そちらを読み込んでいるのです。
いくつかの可能性を調べてみましょう。
私はredhatについて何も知らないのですが、redhatに特有の、使用する"default python"を選択する方法があるのでしょうか?
pipスクリプトの先頭のshebang行は、本来あるべき #!/usr/bin/python3.6
ではなく、#!/usr/bin/env python
のようなものですか?
ダウンロードした Python を使用するようにシェルの PATH を変更することは可能ですか?
PYTHONPATHを変更して(python内部のsys.path
のデフォルト値に追加されると思います。調べてみてください)、古いpipの代わりに新しいpipを読み込むようにできますか?