2013-07-17 27 views
1

我用make安裝不altinstall兩個Python版本衝突在Ubuntu 11.10解夢問題:導入錯誤:沒有模塊

以前現在,當我運行python它給它2.7.2+

Python安裝2.7.5

ImportError: cannot import name MAXREPEAT 

我知道這裏已經有條目了。但是我沒有安裝virtualenv,我也沒有安裝過。如果我運行python2.7 它運行完美。 現在,當我試圖導入一個類似mysqldb的庫時,它說該模塊不存在。 我在安裝python2.7之前安裝了它。

解決方案是什麼?我應該卸載整個python,或者我應該如何卸載python2.7.5或者我應該保留它?如果我保留,那我怎樣才能導入這些模塊?

** 最新更新**

[email protected]:/usr/local/bin$ dir python2* 
python2 python2-config python2.7 python2.7-config 

AND:

/usr/local/bin$ ls -l 
total 1776 
-rwxrwxr-x 1 root root  101 Jul 17 20:17 2to3 
-r-xr-xr-x 1 root root 7223 Mar 31 20:47 config_data 
-rwxr-xr-x 1 root root  299 Jul 18 20:53 easy_install 
-rwxr-xr-x 1 root root  307 Jul 18 20:53 easy_install-2.7 
-rwxrwxr-x 1 root root  99 Jul 17 20:17 idle 
-r-xr-xr-x 1 root root 3910 Mar 31 20:47 json_pp 
-r-xr-xr-x 1 root root  487 Mar 31 20:47 package-stash-conflicts 
-rwxr-xr-x 1 root root  281 Jul 17 19:51 pip 
-rwxr-xr-x 1 root root  289 Jul 17 19:51 pip-2.7 
-rwxrwxr-x 1 root root  84 Jul 17 20:17 pydoc 
lrwxrwxrwx 1 root root  7 Jul 18 23:04 python -> python2 
lrwxrwxrwx 1 root root  14 Jul 18 23:04 python-config -> python2-config 
lrwxrwxrwx 1 root root  9 Jul 18 23:04 python2 -> python2.7 
lrwxrwxrwx 1 root root  16 Jul 18 23:04 python2-config -> python2.7-config 
-rwxr-xr-x 1 root root 1737376 Jul 18 23:03 python2.7 
-rwxr-xr-x 1 root root 1674 Jul 18 23:04 python2.7-config 
-rwxrwxr-x 1 root root 18547 Jul 17 20:17 smtpd.py 
-rwxr-xr-x 1 root root  316 Jul 18 21:10 virtualenv 
-rwxr-xr-x 1 root root  324 Jul 18 21:10 virtualenv-2.7 

會重新安裝該解決獲取和運行默認的問題2.7.2+在Ubuntu回來?:https://launchpad.net/ubuntu/oneiric/+source/python-defaults/2.7.2-7ubuntu2

*此前更新*

現在我可以從bash運行python

這裏是新問題。而且我使用pip安裝每個模塊。從LIB

現有模塊可以進口,但新安裝的人是不能忽視的:

me:~$ sudo pip install requests 
Downloading/unpacking requests 
    Downloading requests-1.2.3.tar.gz (348kB): 348kB downloaded 
    Running setup.py egg_info for package requests 

Installing collected packages: requests 
    Running setup.py install for requests 

Successfully installed requests 
Cleaning up... 
me:~$ python -i 
Python 2.7.5 (default, Jul 17 2013, 20:16:12) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import requests 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named requests 
>>> 

檢查它是在本地運行的Python,版本衝突問題後:

me:~$ python 
Python 2.7.5 (default, Jul 17 2013, 20:16:12) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> exit() 
me:~$ sudo python 
[sudo] password for me: 
Python 2.7.5 (default, Jul 17 2013, 20:16:12) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> exit() 
me:~$ which python 
/usr/local/bin/python 
me:~$ sudo which python 
/usr/local/bin/python 
me:~$ sudo which python2.7 
/usr/local/bin/python2.7 
me:~$ which python2.7 
/usr/local/bin/python2.7 

,我認爲它的運行一樣。然後..

me:/usr/local/bin$ dir python2.7 
python2.7 
me:/usr/local/bin$ cd /usr/bin 
me:/usr/bin$ dir python2.7 
python2.7 

me:/bin$ cd /usr/bin 
me:/usr/bin$ dir python 
python 

me:/usr/local/bin$ dir python 
python 
me:/usr/local/bin$ dir python2.7 
python2.7 

還要檢查以下內容:

~$ which pip 
/usr/local/bin/pip 

好了,現在我安裝的virtualenv ,這是我做過什麼

(foldername)[email protected]:~/caller$ sudo pip install requests 
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages 
Cleaning up... 
(foldername)[email protected]:~/caller$ python -i 
Python 2.7.2+ (default, Jul 20 2012, 22:15:08) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

,現在我們可以看到,2.7.2 +又回來了!那麼現在發生了什麼? 有什麼問題?

不推薦從linux卸載較舊的python。那麼我怎麼能用2.7.5運行virtualenv而不是2.7.2+?

回答

0

您是使用apt-get安裝的,還是從源代碼構建的?

如果從源代碼構建,您確定安裝已成功完成?通常爲了從源代碼構建Python一個必須做以下步驟

  • ./configure
  • make
  • sudo make installsudo可能不需要,但化妝腳本將嘗試改變/usr/目錄中的文件。

在你的python sources目錄下,最後一條命令將python複製到/usr/目錄如果你想讓它安裝在某個地方e如果你必須通過--path=XXX(如果我沒有弄錯)到./configure

+0

的就像我說的做安裝是我做的。在那之前你已經說過所有的步驟。是的,但我沒有使用--path = XXX或/ usr,我擔心是什麼導致它駐留在python旁邊。現在有python和python2.7 – user2290820

+0

在shell中運行'python'後立即得到它嗎? –

+0

確定現在有一個update.python正在運行,但問題是與導入modules.check更新主要問題 – user2290820

0

pip是一個Python程序。當您從命令行運行pip時,它會使用特定的Python可執行文件來運行該程序。 pip將在 Python可執行文件可以找到它們的位置安裝模塊。

當您運行sudo pip install some_package時,操作系統查看shebang line來確定要運行的Python可執行文件。

輸入which pip並查看文件中的第一行以查看它鏈接到哪個python可執行文件。

要爲您的新python2.7.5安裝軟件包,您既可以install a new pip.或者,你可以只運行/usr/local/bin/python pip ...,但我認爲管理多個蟒蛇安裝的最簡單的方法是使用virtualenv

如果您使用virtualenv(我強烈建議),然後自動安裝一個新的pip,因爲它是它的一個依賴關係。 如果你走這條路,我建議你也安裝virtualenvwrapper

如果安裝PIP全球,notice the line

python get-pip.py 

python setup.py install 

的Python可執行程序時,你在這條線使用設置一個版本畫中畫和Python版本之間的 「聯繫」。


如何使用檢查安裝刪除定製的Python:

sudo apt-get install libsqlite3-dev libgdbm-dev liblzma-dev checkinstall 
sudo apt-get build-dep python 

http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 
tar xvjf Python-2.7.5.tar.bz2 
cd Python-2.7.5 
# inspect the options 
./configure --help 
./configure 
make 
make test 
sudo checkinstall -D --fstrans=no make install 

# Accept the default answers EXCEPT that you MUST change the name to something 
# other than python. That way, the name of your custom package does not conflict 
# with the name of Ubuntu's "python" package 

     Should I create a default set of package docs? [y]: 
     Enter a number to change any of them or press ENTER to continue: 2 
     Enter new name: 
     >> python275 

     Copying files to the temporary directory...OK 
     # wait, wait, wait... 

# python2.7.5 is now installed in /usr/local/bin 
# remove it with: 
sudo dpkg -r python275 
+0

我想如果我卸載兩個python並重新安裝2.7.5,它會解決我的問題? – user2290820

+0

這是你的帖子的權利:http://ubuntuforums.org/showthread.php?t=1216379&page=2我應該繼續與此? – user2290820

+0

它給了我:sudo dpkg -r python dpkg:依賴性問題防止刪除python :(列表depende ....),最後:處理時遇到錯誤: python – user2290820

2

當安裝Python使用前綴指定安裝目錄

./configure --prefix=/scratch/bin/ 
make 
sudo make install 
使用以下步驟

然後每次你運行一個新的終端你已經指定

export PATH="$PATH:/scratch/bin/" 

告訴哪裏是Python的

的安裝目錄這樣u可以使用任意數量的蟒蛇