python 2.7 => ImportError:_ioという名前のモジュールはありません


8

WindowsからLinuxに切り替えることにしたので、Ubuntu Raringの最終ベータ版をインストールしました。

残念ながら、Pythonの問題があります。

私はpip作成したvirtualenv から使用して、次のrequirements.txtようなファイルからパッケージをインストールしようとしました:pip install -r requirements.txt

パッケージのインストール中に次のエラーが発生しました。

buildutils/initlibzmq.c:10:20: fatal error: Python.h: No such file or directory

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

これを取り除くには、python-devdebパッケージをインストールする必要があることがインターネットでわかりました。

sudo apt-get install python-dev

このパッケージをインストールしたため、Pythonを実行しようとすると次のエラーが発生します。

file: "ImportError: No module named _io".

I use this python from the virtualenv: 
Python 2.7.4rc1 (default, Mar 30 2013, 15:39:28) 
[GCC 4.7.2] on linux2

誰かがアイデアを持っていますか?私はGoogleで何も見つけることができません。Ubuntuを仕事に使用するには、この問題を本当に解決する必要があります...

ご協力いただきありがとうございます。

編集:

どういうわけか私のvirtualenvが壊れているようです。アンインストールしました。

私はそれを再作成し、「pip install -r requirements.txt」を再度実行しましたが、今、このエラーが発生しています:

Warning: failed to configure libzmq:

/bin/sh: 1: ./configure: not found



staging platform.hpp from: buildutils/include_linux



************************************************

Using bundled libzmq

************************************************

building 'zmq.libzmq' extension

creating build/temp.linux-x86_64-2.7/buildutils

creating build/temp.linux-x86_64-2.7/bundled

creating build/temp.linux-x86_64-2.7/bundled/zeromq

creating build/temp.linux-x86_64-2.7/bundled/zeromq/src

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibundled/zeromq/include -Ibundled -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -c buildutils/initlibzmq.c -o build/temp.linux-x86_64-2.7/buildutils/initlibzmq.o

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibundled/zeromq/include -Ibundled -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -c bundled/zeromq/src/ipc_address.cpp -o build/temp.linux-x86_64-2.7/bundled/zeromq/src/ipc_address.o

x86_64-linux-gnu-gcc: error trying to exec 'cc1plus': execvp: No such file or directory

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

EDIT2:

上記のgccエラーは、build-essentialパッケージをインストールすることで修正できます。


スクリプトを実行したり、pythonのピリオドをしゃぼんだりすると、このエラーが発生しますか?
セス

スクリプトを実行したときです。質問を編集したところを見るとわかるように、私の問題は少し異なります。
ベンジャミン

回答:


3

標準ライブラリとサードパーティモジュールに加えて、Pythonには組み込みモジュールもあります。これらはCで記述され、Python実行可能ファイルに直接リンクされます。あなたはこれらがこのようなものであることを見つけることができます:

$ python
Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_bisect', '_codecs', '_collections', '_functools', '_heapq', '_io', '_locale', '_md5', '_random', '_sha', '_sha256', '_sha512', '_socket', '_sre', '_struct', '_symtable', '_warnings', '_weakref', 'array', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'errno', 'exceptions', 'fcntl', 'gc', 'grp', 'imp', 'itertools', 'marshal', 'math', 'operator', 'posix', 'pwd', 'select', 'signal', 'spwd', 'strop', 'sys', 'syslog', 'thread', 'time', 'unicodedata', 'xxsubtype', 'zipimport', 'zlib')

virtualenv envにコピー/usr/bin/python2.7してenv/bin/pythonから、すべての標準ライブラリモジュールをにシンボリックリンクすることで機能しenv/lib/python2.7/*.pyます。

システムPythonをアップグレードすると、すべてのvirtualenvで更新された標準ライブラリが自動的に取得されます(シンボリックリンクのため)。ただし、Python実行可能ファイルの古いコピーはまだ使用しています。これは、組み込みモジュールの古いバージョンも使用していることを意味します。

一部の標準ライブラリモジュールは、組み込みモジュールに依存しています。また、Python 2.7。(x + 1)標準ライブラリは、Python 2.7。(x + 1)で導入された組み込みモジュールに依存する場合もあります。古いvirtualenvを使用すると、Python 2.7。(x + 1)の標準ライブラリでPython 2.7.xを使用しようとしていることになり、場合によってはこれが失敗します。

virtualenvを再作成することが正しい解決策です。

(更新されたシステムPythonに新しいstdlibファイルが表示されないことを前提として、virtualenv内のbin/pythonbin/python2.7実行可能ファイルを置き換えるだけでおそらく十分です。)


2

破損したvirtualenvのpythonバージョンを置き換える必要があります。

これを行う:

  1. 新しいVirtualenvを作成する

    mkvirtualenv MyNewTestEnv
    
  2. 「python」を見つけます(私の場合、virtualenvはホームディレクトリにあります)。

    cd ~/.virtualenvs/MyNewTestEnv/bin
    
  3. 新しいvirtualenvから破損したvirtualenvに「python」をコピーします

    cp ~/.virtualenvs/MyNewTestEnv/bin/python ~/.virtualenvs/<yourCorruptedEnv>/bin
    

それでおしまい。これで、CorruptedEnvを修正する必要があります。


1

この回答を追加して、未回答のキューから質問を取り出すことに注意してください。

2番目の編集で自分を提案するように、

上記のgccエラーは、build-essential debianパッケージをインストールすることで修正できます。


0

仮想環境を削除する必要はありません。

この手順に従ってください。仮想環境の名前が「mydev」であるとしましょう

1)virtualenv mydev

上記のコマンドは、パッケージを失うことなくアップグレードするだけです。

2)virtualenvの外で、pipが機能していない場合は、「easy_install pip」で問題が解決します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.