4

これは数回尋ねられましたが、答えは少なくとも私には意味がありません. 私は Ubuntu 12.04 を使用しており、modwsgi のコンパイルに使用できるライブラリを取得するために、Python をデフォルト (2.7.3?) から 2.7.5 にアップグレードする必要がありました。

--enable-shared で構成された 2.7.5 ソースを入手し、作成してインストールしました。いくつかの廃止された Sun Audio などのライブラリをビルドできませんでしたが、それ以外の場合はインストールが完了しました。それが機能しないことを除いて:

visti@ubuntu:~$ python
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site.py", line 548, in <module>
    main()
  File "/usr/local/lib/python2.7/site.py", line 530, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/lib/python2.7/site.py", line 266, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/lib/python2.7/site.py", line 241, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/lib/python2.7/site.py", line 231, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/lib/python2.7/sysconfig.py", line 516, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/lib/python2.7/sysconfig.py", line 449, in get_config_vars
    import re
  File "/usr/local/lib/python2.7/re.py", line 105, in <module>
    import sre_compile
  File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
    import sre_parse
  File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
    from sre_constants import *
  File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT

ここで提案されている解決策ubuntu ImportError: cannot import name MAXREPEATは、それが何であれ、「virtualenv」を再構成することでした。/usr/local/bin には virtualenv という名前の古いスクリプトがありますが、python も実行しようとして動作しません。

MAXREPEAT が 2.7.4 で登場したため、問題は古い Python モジュールの使用に関連している可能性があると誰かが示唆しました。これに対抗するために、私は rm -rf (/usr/bin/python*, /usr/lib/python*, /usr/local/lib/python*, /usr/local/bin/python*, make clean, make, make install を 2.7.5 にしました。

それでも同じ結果です。現在、動作するバージョンの Python はもうありません。これを修正する方法はありますか、または 2.7.5 が利用可能な場合、Ubuntu Python パッケージを再インストールする必要がありますか?

ハンヌ

4

3 に答える 3

0

これを修正した方法は、自分のシステムで sre_constants.py ファイルの他のインスタンスを検索することでした。次に、それらのファイルの場所がユーザーまたはシステムで参照されているかどうかを確認します$PATH。その場合は、その場所の設定を から削除してください$PATH。python を再実行して、問題が解決したかどうかを確認します。

私の場合、Python は MAXREPEAT をサポートしていない間違った場所を参照しているようです。

于 2013-10-24T17:55:36.480 に答える
0

これは通常、libpython.so のバージョンと python インタープリターのバージョンを混在させて一致させた場合に発生します。インストール パスを削除しても問題が解決しない場合は、これらの環境変数を確認してください。 $PYTHONHOME $PYTHONINCLUDE $PYTHONLIB $PYTHONLIBSTATIC $PYTHONPATH それらが指すものもすべて削除されていることを確認してください。そして、再インストールします。

ホーム ディレクトリを指すように -prefix 変数を構成することで、ホーム ディレクトリに python をインストールすることもできます。

make configure -prefix=$HOME/mypython`

次に、上記の変数を、python が存在する新しいホーム ディレクトリに設定してください。

于 2013-10-04T19:19:52.560 に答える