[PYTHON] 윈도우 7 virtualenv 반환 AssertionError
PYTHON윈도우 7 virtualenv 반환 AssertionError
Windows 7에서 virtualenv에 문제가 있습니다.
난 달린다:
virtualenv _testenv
다음을 반환합니다.
Traceback (most recent call last):
File "C:\Python27\Scripts\virtualenv-script.py", line 9, in <module>
load_entry_point('virtualenv==1.5.2', 'console_scripts', 'virtualenv')()
File "C:\Python27\lib\site-packages\virtualenv.py", line 558, in main
prompt=options.prompt)
File "C:\Python27\lib\site-packages\virtualenv.py", line 647, in create_environment
site_packages=site_packages, clear=clear))
File "C:\Python27\lib\site-packages\virtualenv.py", line 771, in install_python
copy_required_modules(home_dir)
File "C:\Python27\lib\site-packages\virtualenv.py", line 725, in copy_required_modules
dst_filename = change_prefix(filename, dst_prefix)
File "C:\Python27\lib\site-packages\virtualenv.py", line 710, in change_prefix
(filename, prefixes)
AssertionError: Filename c:\Python27\Lib\os.py does not start with any of these prefixes: ['C:\\Python27']
다음 환경 변수가 있습니다.
PYTHONHOME=C:\Python27
PYTHONPATH=c:\Python27;c:\Python27\Lib
PYTHONSTARTUP=C:\Users\Larry\.pythonrc
PATH=%PYTHONHOME%\;%PYTHONHOME%\Scripts;etc
ActiveState Python 설치 :
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win32
PYTHONPATH = C : \ Python27; C : \ Python27 \ Lib을 업데이트했습니다. 솔루션을 찾으면서 AppData / Python *을 찾아 제거했습니다. 파이썬을 다시 설치했는데 이제는 다른 오류가 있습니다 :
C:\xbz>virtualenv _t
PYTHONHOME is set. You *must* activate the virtualenv before using it
Overwriting _t\Lib\site.py with new content
New python executable in _t\Scripts\python2.7.exe
Not overwriting existing python script _t\Scripts\python.exe (you must use _t\Scripts\python2.7.exe)
Overwriting _t\Lib\distutils\__init__.py with new content
Installing setuptools..............
Complete output from command C:\xbz\_t\Scripts\python2.7.exe -c "#!python
\"\"\"Bootstrap setuptoo...
" --always-copy -U setuptools:
Traceback (most recent call last):
File "<string>", line 278, in <module>
File "<string>", line 210, in main
File "<string>", line 132, in download_setuptools
File "C:\Python27\Lib\urllib2.py", line 94, in <module>
import httplib
File "C:\Python27\Lib\httplib.py", line 71, in <module>
import socket
File "C:\Python27\Lib\socket.py", line 47, in <module>
import _socket
ImportError: No module named _socket
----------------------------------------
...Installing setuptools...done.
Traceback (most recent call last):
File "C:\Python27\Scripts\virtualenv-script.py", line 9, in <module>
load_entry_point('virtualenv==1.5.2', 'console_scripts', 'virtualenv')()
File "C:\Python27\lib\site-packages\virtualenv.py", line 558, in main
prompt=options.prompt)
File "C:\Python27\lib\site-packages\virtualenv.py", line 654, in create_environment
install_setuptools(py_executable, unzip=unzip_setuptools)
File "C:\Python27\lib\site-packages\virtualenv.py", line 384, in install_setuptools
_install_req(py_executable, unzip)
File "C:\Python27\lib\site-packages\virtualenv.py", line 360, in _install_req
cwd=cwd)
File "C:\Python27\lib\site-packages\virtualenv.py", line 624, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command C:\xbz\_t\Scripts\python2.7.exe -c "#!python
\"\"\"Bootstrap setuptoo...
" --always-copy -U setuptools failed with error code 1
나는 Lib / socket.py를 해킹하고 삽입했다.
import sys
sys.path = ['', 'C:\\Python27\\lib\\site-packages\\dotcloud-0.3.1-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\dotcloud.cli-0.3.1-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\flask-0.7dev_20110622-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\werkzeug-0.6.2-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\gunicorn-0.12.2-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\wtforms-0.6.3-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\repoze.browserid-0.3-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\paste-1.7.5.1-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\django_pjax-1.0-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\paramiko-1.7.7.1-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\pycrypto-2.4.1-py2.7-win32.egg', 'C:\\Python27', 'C:\\Python27\\Lib', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\PIL', 'C:\\Python27\\lib\\site-packages\\win32', 'C:\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info', 'C:\\Python27\\Scripts', 'C:\\Python27\\Lib\\site-packages\\django\\bin']
위
import _socket
그 이유는 직선적 인 파이썬 프롬프트에서 소켓을 가져올 수 있었기 때문입니다! 그래서 내 기존 경로를 박제. 정확히 어느 디렉토리에서 행복하게 만들 었는지 정확하게 파악하지 못했습니다. 그것은 적어도 다른 사람에게 내가 왜 그 오류가 없는지를 알려줄 것입니다.
아이디어? 제안? 고맙습니다. :)
나는 Lib / socket.py를 해킹하고 삽입했다.
import sys
sys.path.append('C:\\Python27\\DLLs')
위
import _socket
해결법
-
==============================
1.3 년 된 질문이지만 잘하면이 대답은 여전히 누군가를 도울 수 있습니다. 신비하게도 작동하지 않는 환경 변수를 설정하는 대신 가상 환경을 설정할 때 Python 설치 경로를 전달할 수 있습니다. Windows에서는 python.exe로 경로를 지정해야하지만 Linux / OS X에서는 폴더로 경로가 지정됩니다. 예 :
3 년 된 질문이지만 잘하면이 대답은 여전히 누군가를 도울 수 있습니다. 신비하게도 작동하지 않는 환경 변수를 설정하는 대신 가상 환경을 설정할 때 Python 설치 경로를 전달할 수 있습니다. Windows에서는 python.exe로 경로를 지정해야하지만 Linux / OS X에서는 폴더로 경로가 지정됩니다. 예 :
Windows :
virtualenv -p <PATH TO PYTHON.EXE> venv
Linux / Mac :
virtualenv -p </user/path/to/python> venv
두 가지 모두 현재 디렉토리의 하위 디렉토리 인 "venv"에 가상 환경을 만듭니다.
-
==============================
2.PYTHONPATH를 PYTHONPATH = C : \ Python27; C : \ Python27 \ Lib (시작시 대문자 C)로 설정하십시오.
PYTHONPATH를 PYTHONPATH = C : \ Python27; C : \ Python27 \ Lib (시작시 대문자 C)로 설정하십시오.
이것은 명령 프롬프트에서 set PYTHONPATH = C : \ Python27; C : \ Python27 \ Lib을 입력하여 수행 할 수 있습니다.
PYTHONPATH는 명령 프롬프트 창이 닫히면 이전 상태로 되돌아갑니다.
-
==============================
3._socket 오류의 경우 pythonpython 경로를 다음과 같이 변경하십시오.
_socket 오류의 경우 pythonpython 경로를 다음과 같이 변경하십시오.
PYTHONPATH=C:\Python27;C:\Python27\Lib;C:\Python27\DLLs
-
==============================
4.현재 유사한 오류가있는 문제가 있습니다.
현재 유사한 오류가있는 문제가 있습니다.
AssertionError: Filename C:\Python27\Lib\os.py does not start with any of these prefixes: ['C:\\python27']
차이점은 소문자 인 'C : \ python27'에 있습니다. 따라서 문제는 새로운 virtualenv를 설치하거나 중첩 된 virtualenvs를 만들 수 없다는 점에서 그 자체가 명백합니다 (우리는 때로는 테스트를 위해 그것을합니다). 원인은 PYTHONPATH의 본질에 있습니다.
PYTHONPATH=C:\Python27;C:\Python27\Lib
어떤 이유로 virtualenv.py의 sys.path는 c : \ python27을 반환하지만 필수 모듈의 경로는 PYTHONPATH에서 시작하여 'C : \ Python27 \ Lib'로 시작하므로 어설 션 오류가 발생합니다.
짧게 이야기하면 PYTHONPATH의 설정을 해제하십시오.
-
==============================
5.나는 추가했다.
나는 추가했다.
if is_win: prefixes.append('C:\PYTHON27')
virtualenv.py로 보내면 작동합니다.
-
==============================
6.그것의 이상하지만 오류 메시지에서
그것의 이상하지만 오류 메시지에서
AssertionError: Filename c:\Python27\Lib\os.py does not start with any of these prefixes: ['C:\\Python27']
파일 os.py의 경로 이름이 대문자 'C'로 시작하고 접두사 온 전성 검사가 대소 문자를 구별합니다.
라이브러리 경로가 PYTHONPATH에서 파생되었으므로 드라이브 문자가 소문자 인 경우이를 해결하기 위해 대문자로 변경하는 것이 논리적 인 것처럼 보입니다.
처럼
PYTHONPATH=C:\Python27;C:\Python27\Lib
-
==============================
7.나는 "요약"답변을 싫어하지만, 방금 비슷한 문제를 겪었을 때, 나는이 해결책 중 몇 가지를 끌어 당기고 여기서도 내 해결책을 게시 할 것이라고 생각했다.
나는 "요약"답변을 싫어하지만, 방금 비슷한 문제를 겪었을 때, 나는이 해결책 중 몇 가지를 끌어 당기고 여기서도 내 해결책을 게시 할 것이라고 생각했다.
전체 PYTHONPATH 환경 변수는 다음과 같습니다.
PYTHONPATH=C:\Python27;C:\Python27\Lib;C:\Python27\DLLs
-
==============================
8.이것은 Python 개발팀에 이미 제출 된 오류입니다 : https://github.com/pypa/virtualenv/pull/697
이것은 Python 개발팀에 이미 제출 된 오류입니다 : https://github.com/pypa/virtualenv/pull/697
그 사이에 파이썬 설치 폴더 이름을 (ptyhon27)로 바꾸어서 어설 션을 작동시키지 않거나 다른 위치를 사용하여 파이썬을 다시 설치하는 것이 더 편하다고 생각한다면 왜 그렇습니까? 그것은 문제없이 작동합니다.
-
==============================
9.다음을 시도 할 수 있습니다 (파이썬이 전역 경로에 있다고 가정하십시오).
다음을 시도 할 수 있습니다 (파이썬이 전역 경로에 있다고 가정하십시오).
python -m virtualenv [foldername]
이것은 나를 위해, 승 10, virtualenv 15.1.0 작동
나는이 비디오에서 그것을 얻는다. 그것은 exe 윈도우를 호출하는 대신 파이썬 lib를 실행할 것이다.
-
==============================
10.또한 Windows 7에서이 문제가 발생했습니다. Python27 설치가 C : \ Program Files 아래에 있었는데 경로에 공백이 포함되어 있습니다. 따라서 Python을 포함하지 않는 별도의 Windows 7 시스템에서 C : \ Python27 (기본 설치 경로) 아래에 Python27을 새로 설치 한 다음 setuptools (easy_install 용)를 설치합니다.
또한 Windows 7에서이 문제가 발생했습니다. Python27 설치가 C : \ Program Files 아래에 있었는데 경로에 공백이 포함되어 있습니다. 따라서 Python을 포함하지 않는 별도의 Windows 7 시스템에서 C : \ Python27 (기본 설치 경로) 아래에 Python27을 새로 설치 한 다음 setuptools (easy_install 용)를 설치합니다.
그 후에 위의 어설 션 오류없이 virtualenv를 간단하게 설치할 수있었습니다 (필자는 easy_install을 사용했습니다).
나는 OP 시스템이 이미 기본 경로를 사용하고 있다는 것을 알고 있지만 특정 경험에 대한 가능한 솔루션으로 경험을 추가 할 것이라고 생각했습니다.
-
==============================
11.이 문제는 다른 대소 문자를 구별하는 파일 시스템의 숙취 일 것으로 추정됩니다.
이 문제는 다른 대소 문자를 구별하는 파일 시스템의 숙취 일 것으로 추정됩니다.
완벽한 솔루션 :
이 버그를 수정하기 위해 내가 한 유일한 변화는 다음과 같습니다. 변경 사항은 새로운 명령 / 터미널 세션 (열려있는 cmd.exe / powershell / 등 창을 닫음)에 적용됩니다.
PYTHONPATH에 다른 항목이 있다면 그 항목도 변경할 수 있지만 virtualenv의 실행 가능성에는 영향을 미치지 않습니다.
-
==============================
12."virtualenv.py"-> change_prefix를 다음과 같이 변경하십시오 :
"virtualenv.py"-> change_prefix를 다음과 같이 변경하십시오 :
def change_prefix(filename, dst_prefix): ... prefixes = sorted(prefixes, key=len, reverse=True) filename = str(os.path.abspath(filename))[0].lower() + str(os.path.abspath(filename))[1:] for src_prefix in prefixes: if filename.startswith(src_prefix): _, relpath = filename.split(src_prefix, 1) if src_prefix != os.sep: # sys.prefix == "/" assert relpath[0] == os.sep relpath = relpath[1:] return join(dst_prefix, relpath) assert False, "Filename %s does not start with any of these prefixes: %s" % \ (filename, prefixes) ...
-
==============================
13.나는 약간 다른 원인에서 동일한 주장 오류가있었습니다. 이 오류는 [ 'C : \\ python27']과 'p'소문자로 시작하지 않습니다. 실제 폴더 이름은 모두 capital-P Python27을 사용합니다. PTYHONPATH의 모든 접두어가 정확했습니다. 그러나 PYTHONHOME 변수를 C : \ python27로 입력했는데 파이썬에서는 괜찮 았지만 virtualenv에서 오류가 발생했습니다.
나는 약간 다른 원인에서 동일한 주장 오류가있었습니다. 이 오류는 [ 'C : \\ python27']과 'p'소문자로 시작하지 않습니다. 실제 폴더 이름은 모두 capital-P Python27을 사용합니다. PTYHONPATH의 모든 접두어가 정확했습니다. 그러나 PYTHONHOME 변수를 C : \ python27로 입력했는데 파이썬에서는 괜찮 았지만 virtualenv에서 오류가 발생했습니다.
from https://stackoverflow.com/questions/8688709/virtualenv-on-windows-7-returns-assertionerror by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 문자열에서 QpushButton을 누르면 QlineEdit에서 텍스트를 가져 오는 방법은 무엇입니까? (0) | 2018.11.15 |
---|---|
[PYTHON] webdriver를 통해 javascript 팝업을 클릭하십시오. (0) | 2018.11.15 |
[PYTHON] 숫자가 아닌 열에서 피벗을 사용하고 평균을 계산하는 방법 (AnalysisException "숫자 열이 아닌")? (0) | 2018.11.15 |
[PYTHON] Numpy없이 행렬 반전 (0) | 2018.11.15 |
[PYTHON] 패키지 내의 모든 모듈 구성원을 가져 오는 방법은 무엇입니까? (0) | 2018.11.15 |