![](/img/trans.png)
[英]How to correctly install python-numpy in Ubuntu 11.10 Oneiric
[英]Two Python Version conflict in Ubuntu Oneiric 11.10 issue: ImportError: No module
我使用make install而不是altinstall安裝了python 2.7.5
以前是2.7.2+
現在當我運行python時
ImportError: cannot import name MAXREPEAT
我知道這里已經有與此相關的條目。 但是我沒有安裝virtualenv,也沒有安裝過。
如果我運行python2.7
它將運行完美。 現在,當我嘗試導入像mysqldb這樣的庫時,它說該模塊不存在。 我在安裝python2.7之前安裝了它。
解決辦法是什么? 我應該卸載整個python還是應該只卸載python2.7.5還是應該保留它? 如果我保留那個,那我該如何導入那些模塊?
** 最新更新**
me@me:/usr/local/bin$ dir python2*
python2 python2-config python2.7 python2.7-config
和:
/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
將重新安裝此解決方案解決了在ubuntu中獲取並運行默認2.7.2+的問題嗎?: 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)me@me:~/caller$ sudo pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages
Cleaning up...
(foldername)me@me:~/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而不是2.7.2+的virtualenv?
安裝python時,請執行以下步驟
使用前綴指定安裝目錄
./configure --prefix=/scratch/bin/
make
sudo make install
然后,每次您運行新的終端時,您都要指定
export PATH="$PATH:/scratch/bin/"
告訴Python的安裝目錄在哪里
這樣,您可以使用任意數量的python
您是否使用apt-get或從源代碼構建了它?
如果是從源代碼構建的,則確定安裝成功完成了嗎? 通常,為了從源代碼構建Python,必須執行以下步驟
./configure
make
sudo make install
(可能不需要sudo
,但是make腳本將嘗試更改/usr/
目錄中的文件。 在您的python來源目錄中。 除其他命令外,最后一個命令將python復制到/usr/
目錄。 如果要在其他地方安裝它,則必須將--path=XXX
(如果我沒記錯的話)傳遞給./configure
。
pip
是一個Python程序。 當您從命令行運行pip
,它將使用特定的Python可執行文件來運行該程序。 pip
將安裝模塊的位置在那里了 Python可執行文件可以找到它們。
當您運行sudo pip install some_package
,操作系統會在shebang行上確定要運行的Python可執行文件。
輸入which pip
並查看文件的第一行,以查看其鏈接到哪個python可執行文件。
要為新的python2.7.5安裝軟件包,可以安裝新的pip
。 或者,您可以只運行/usr/local/bin/python pip ...
,但是我認為管理多個python安裝的最簡單方法是使用virtualenv 。
如果您使用virtualenv(我強烈建議),則會自動安裝一個新的pip
因為它是其依賴項之一。 如果您走這條路,我建議您也安裝virtualenvwrapper 。
如果您全局安裝pip,請注意以下行
python get-pip.py
要么
python setup.py install
您在此行上使用的python可執行文件設置了該pip版本與該python版本之間的“鏈接”。
如何使用checkinstall刪除自定義的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.