1

altinstallではなくmake installを使用して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.2+ではなく2.7.5でvirtualenvを実行するにはどうすればよいですか?!

4

3 に答える 3

2

Python をインストールするときは、
プレフィックスを使用して次の手順を実行し、インストール ディレクトリを指定します。

 ./configure --prefix=/scratch/bin/
 make
 sudo make install

次に、新しいターミナルを実行するたびに、指定しました

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

Pythonのインストールディレクトリがどこにあるかを知る

このようにして、任意の数のpythonを使用できます

于 2015-11-30T17:44:27.260 に答える
0

pipPython プログラムです。コマンド ラインから実行pipすると、特定の Python 実行可能ファイルを使用してプログラムが実行されます。Python 実行可能ファイルがモジュールを見つけられるpip場所にモジュールをインストールします。

を実行するsudo pip install some_packageと、OS はシバン行を調べて、実行する Python 実行可能ファイルを決定します。

ファイルの最初の行を入力which pipして見て、リンクされている python 実行可能ファイルを確認します。

新しい python2.7.5 のパッケージをインストールするには、新しいpip. または、単に実行することもできますが/usr/local/bin/python pip ...、複数の python インストールを管理する最も簡単な方法はvirtualenvを使用することだと思います。

virtualenv を使用する場合 (これを強くお勧めします)、pip依存関係の 1 つであるため、新しいものが自動的にインストールされます。このルートに進む場合は、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
于 2013-07-18T10:38:08.903 に答える