python 2.7 => ImportError : _io라는 모듈이 없습니다.


8

Windows에서 Linux로 전환하기로 결정했기 때문에 Ubuntu Raring 최종 베타 버전을 설치했습니다.

불행히도 파이썬 문제가 있습니다.

다음 과 같은 파일 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

이 패키지를 설치 했으므로 파이썬을 실행하려고 할 때 다음 오류가 발생합니다.

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에서 아무것도 찾을 수 없으며 작업에 우분투를 사용하려면이 문제를 해결해야합니다 ...

당신의 도움을 주셔서 감사합니다.

편집하다:

내 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.


스크립트 또는 파이썬 기간을 실행하려고 할 때이 오류가 발생합니까?
세스

스크립트를 실행할 때였습니다. 보시다시피 질문을 편집 했으므로 문제가 약간 다릅니다.
Benjamin

답변:


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/pythonenv/lib/python2.7/*.py

시스템 Python을 업그레이드하면 모든 가상 환경에서 업데이트 된 표준 라이브러리가 자동으로 표시되지만 (symlinks 때문에!) 여전히 오래된 Python 실행 파일 사본을 사용하고 있습니다. 즉, 이전 버전의 내장 모듈도 사용하고 있습니다.

일부 표준 라이브러리 모듈은 내장 모듈에 따라 다릅니다. 때로는 Python 2.7. (x + 1) 표준 라이브러리가 Python 2.7. (x + 1)에 도입 된 내장 모듈에 의존합니다. 오래된 virtualenv를 사용하면 Python 2.7.x (x + 1)의 표준 라이브러리와 함께 Python 2.7.x를 사용하려고하는데 때로는 중단됩니다.

virtualenv를 다시 작성하는 것이 올바른 솔루션입니다.

( 업데이트 된 시스템 파이썬에 새로운 stdlib 파일이 나타나지 않는다고 가정하면 virtualenv 내부 의 bin/pythonbin/python2.7실행 파일 을 대체하는 것으로 충분합니다 .)


2

손상된 virtualenv에서 파이썬 버전을 교체해야합니다.

이 작업을 수행:

  1. 새로운 Virtualenv 생성

    mkvirtualenv MyNewTestEnv
    
  2. "python"을 찾으십시오 (제 경우 virtualenvs는 홈 디렉토리에 있습니다)

    cd ~/.virtualenvs/MyNewTestEnv/bin
    
  3. 새 virtualenv에서 "python"을 손상된 virtualenv로 복사하십시오.

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

그게 다야. 이제 CorruptedEnv가 수정되었습니다.


1

답변이없는 대기열에서 질문을 가져 오려면이 답변을 추가하십시오.

두 번째 편집에서 자신을 제안 할 때

위의 gcc 오류는 빌드 필수 데비안 패키지를 설치하여 해결할 수 있습니다.


0

가상 환경을 삭제할 필요가 없습니다.

이 단계를 따르십시오. 가상 환경 이름이 "mydev"라고 가정 해 봅시다.

1) virtualenv mydev

위의 명령은 패키지를 잃지 않고 업그레이드합니다.

2) virtualenv 외부에서, 핍이 작동하지 않으면 "easy_install pip"만으로 문제가 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.