2017-06-25 27 views
0

我在Centos7上。我有多個Python版本(Python中完全新手)。 一個在我的文件夾名的Python 2.6.6內部根我安裝步驟如下:多個Python導致在錯誤位置安裝boto

wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz 
tar -zxvf Python-2.6.6.tgz 
cd Python-2.6.6 
sudo yum install gcc gcc-c++ 
make 
make install 

但是也有在/usr/lib/python2.7/site-packages ,我不知道怎樣才創造了一個Python文件夾。 現在我安裝博託使用

sudo yum -y install python-pip 
sudo pip install boto 

安裝結束與評論 安裝收集包:博託 成功安裝博託-2.47.0

現在,當我做python --version,我得到Python 2.6.6這預計

which python : /usr/local/bin/python 

但是當我做import boto 我得到 進口博託 回溯(最近最後一次通話): 文件「」,1號線,在 導入錯誤:沒有名爲博託

模塊爲什麼你沒有導入請幫助?

+0

我覺得你的CentOS已經有了Python,它現在發生衝突與其他安裝。另外,python-pip RPM軟件包將軟件包安裝到* system * python中。另外,很久以前[Python 2.6已經* EOL * ed了](https://mail.python.org/pipermail/python-dev/2013-September/128287.html),充滿了漏洞等等, Python 2.7會遵循它 - 如果您正在編譯自己的Python,爲什麼不選擇新的** 3 ** .6?! –

+0

您是否打算卸載Python 2.6?我不能以某種方式使用任何現有的Python安裝? – user2991413

+0

你**已經**從源代碼安裝你的Python 2.6.6。此外,它甚至不是2.6.9的源代碼,它是最新發布的Python 2.6版本,但是沒有2.6.6的版本(https://www.python.org/download/releases/2.6.6/)任何Centos特定的修補程序。 –

回答

3

CentOs 7在默認情況下與python 2.7交付。

你用pip安裝了boto,它是綁定到python 2.7的,這就是爲什麼你不能使用python 2.6導入boto。 pip綁定到python2.7,因爲它是CentOs 7中的默認版本。

您應該使用virtualenv。它允許你創建一個特定的python版本的python環境,並安裝所需的模塊。

例子:

virtualenv -p /usr/bin/python2.7 /home/user/my_project 
cd ./my_project 
source bin/active 

現在你在一個Python的virtualenv。第一個命令指向python2.7,但你可以指向安裝的任何python版本(從repos等編譯)。一旦你採購的active文件,您可以安裝模塊使用pip

編輯

要使用您的virtualenv運行的腳本(不採購./bin/active):

/home/user/my_project/bin/python /path/my_script.py 

如果你使用這個命令:

source bin/activate 

然後你可以使用pip將一個lib添加到virtualenv。

編輯2

所以,你在CentOS 7至極裝有蟒蛇2.7。你想用特定的腳本來使用python 2.6。

  1. 安裝Python 2.6(讓我們在/usr/bin/python2.6說)
  2. 與Python 2.6創建virtuanlenv:

    的virtualenv -p /usr/bin/python2.6 my_venv

  3. 輸入的virtualenv

    cd my_env source bin/activate

  4. 檢查Python版本(應返回蟒蛇的2.6.x)

    蟒蛇

  5. 安裝與PIP模塊:

    PIP安裝博託

boto將蟒蛇裝2.6,所以你將能夠使用你的腳本。

如果由於某種原因pip未安裝:

yum install python-pip 
+0

我想我不能這樣做,因爲我正在運行一個Jenkins作業的python腳本,相同的外殼。 – user2991413

+0

如果這是真的,並且Python 2.7安裝在'/ usr/bin'和'/ usr/lib/python2.7'中,那麼我想刪除'/ usr/local/bin/python *'會是安全的嗎? –

+1

@ user2991413你總是可以做到這一點,只需將腳本指向'/ foo/bar/baz/my_project/venv/bin/python'即可。 –