2011-11-10 6 views
10

64 비트 파이썬 2.7 pywin32 모듈 (운영 체제는 Windows 7 64 비트)을 사용하여 virtualenv에 설치하는 것이 좋습니다.
Sourceforge에 exe 설치 프로그램이 있습니다.python을 사용하여 virtualenv pywin32를 설치하는 방법 2.7 64 bit?

내가 명령 줄에서 easy_installer를 처음 실행하면 모든 것이 잘되고 있지만 곧 이상한 행동을 보게된다 : pywin32-216.win-amd64-py2.7은 pywin32-216-py2.7-win32.egg를 실행하고 설치한다. 오류와 함께 실패합니다 :

No local packages or download links found for pywin32==216 
Best match: None 

을 그리고 여기 내 전체 로그입니다 :

(sandbox_virtenv) D:\test\py2exe_test>easy_install http://sourceforge.net/projects/pywin32/files/pywin32/Build216/pywin32-216.win-amd64-py2.7.exe 
Downloading http://sourceforge.net/projects/pywin32/files/pywin32/Build216/pywin32-216.win-amd64-py2.7.exe 
Processing pywin32-216.win-amd64-py2.7.exe 
pywintypes: module references __file__ 
win32evtlogutil: module references __file__ 
win32serviceutil: module references __file__ 
win32timezone: module references __file__ 
Demos.win32rcparser_demo: module references __file__ 
Demos.security.sspi.validate_password: module references __file__ 
isapi.install: module references __file__ 
isapi.samples.advanced: module references __file__ 
isapi.samples.test: module references __file__ 
isapi.test.setup: module references __file__ 
pywin.framework.scriptutils: module references __file__ 
pywin.framework.startup: module references __path__ 
pywin.scintilla.config: module references __path__ 
pywin.scintilla.control: module references __file__ 
pywin.scintilla.IDLEenvironment: module references __file__ 
scripts.regsetup: module references __file__ 
scripts.setup_d: module references __file__ 
test.testall: module references __file__ 
test.test_clipboard: module references __file__ 
test.test_win32api: module references __file__ 
test.test_win32rcparser: module references __file__ 
D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\bdist_egg.py:422: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal 
    symbols = dict.fromkeys(iter_symbols(code)) 
test.test_win32trace: module references __file__ 
win32com.__init__: module references __path__ 
win32com.server.register: module references __file__ 
win32com.server.register: module references __path__ 
win32com.test.GenTestScripts: module references __path__ 
win32com.test.pippo_server: module references __file__ 
win32com.test.testall: module references __file__ 
win32com.test.testAXScript: module references __path__ 
win32com.test.testDictionary: module references __file__ 
win32com.test.testPippo: module references __file__ 
win32com.test.testPyComTest: module references __file__ 
win32com.test.testServers: module references __file__ 
win32com.test.util: module references __file__ 
win32comext.adsi.__init__: module references __path__ 
win32comext.authorization.__init__: module references __path__ 
win32comext.axcontrol.__init__: module references __path__ 
win32comext.axdebug.codecontainer: module references __file__ 
win32comext.axdebug.debugger: module references __file__ 
win32comext.axdebug.__init__: module references __path__ 
win32comext.axscript.__init__: module references __path__ 
win32comext.bits.__init__: module references __path__ 
win32comext.directsound.__init__: module references __path__ 
win32comext.directsound.test.ds_test: module references __file__ 
win32comext.internet.__init__: module references __path__ 
win32comext.mapi.__init__: module references __path__ 
win32comext.shell.__init__: module references __path__ 
win32comext.shell.demos.servers.empty_volume_cache: module references __file__ 
win32comext.shell.demos.servers.folder_view: module references __file__ 
win32comext.taskscheduler.__init__: module references __path__ 
creating 'c:\users\antp~1.kyi\appdata\local\temp\easy_install-kclmxk\pywin32-216-py2.7-win32.egg' and adding 'c:\users\antp~1.kyi\appdata\local\temp\easy_install-kclmxk\pywin32-216-py2.7-win32.egg.tmp' to it 
creating d:\test\sandbox_virtenv\lib\site-packages\pywin32-216-py2.7-win32.egg 
Extracting pywin32-216-py2.7-win32.egg to d:\test\sandbox_virtenv\lib\site-packages 
Adding pywin32 216 to easy-install.pth file 
Installing pywin32_postinstall.py script to D:\test\sandbox_virtenv\Scripts 
Installing pywin32_postinstall.pyc script to D:\test\sandbox_virtenv\Scripts 
Installing pywin32_testall.py script to D:\test\sandbox_virtenv\Scripts 
Installing pywin32_testall.pyc script to D:\test\sandbox_virtenv\Scripts 

Installed d:\test\sandbox_virtenv\lib\site-packages\pywin32-216-py2.7-win32.egg 
Processing dependencies for pywin32==216 
Searching for pywin32==216 
Reading http://pypi.python.org/simple/pywin32/ 
Reading http://sf.net/projects/pywin32 
Reading https://sourceforge.net/projects/pywin32/files/pywin32/ 
Reading http://sourceforge.net/project/showfiles.php?group_id=78018 
No local packages or download links found for pywin32==216 
Best match: None 
Traceback (most recent call last): 
    File "D:\test\sandbox_virtenv\Scripts\easy_install-script.py", line 8, in <module> 
    load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install')() 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 1712, in main 
    with_ei_usage(lambda: 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 1700, in with_ei_usage 
    return f() 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 1716, in <lambda> 
    distclass=DistributionWithoutHelpCommands, **kw 
    File "c:\Python27\Lib\distutils\core.py", line 152, in setup 
    dist.run_commands() 
    File "c:\Python27\Lib\distutils\dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "c:\Python27\Lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 211, in run 
    self.easy_install(spec, not self.no_deps) 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 422, in easy_install 
    return self.install_item(None, download, tmpdir, deps, True) 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 478, in install_item 
    self.process_distribution(spec, dist, deps) 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 519, in process_distribution 
    [requirement], self.local_index, self.easy_install 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\pkg_resources.py", line 563, in resolve 
    dist = best[req.key] = env.best_match(req, self, installer) 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\pkg_resources.py", line 799, in best_match 
    return self.obtain(req, installer) # try and download/install 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\pkg_resources.py", line 811, in obtain 
    return installer(requirement) 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\command\easy_install.py", line 434, in easy_install 
    self.local_index 
    File "D:\test\sandbox_virtenv\lib\site-packages\setuptools-0.6c11-py2.7.egg\setuptools\package_index.py", line 475, in fetch_distribution 
    return dist.clone(location=self.download(dist.location, tmpdir)) 
AttributeError: 'NoneType' object has no attribute 'clone' 

(sandbox_virtenv) D:\test\py2exe_test> 

지금 내가 파이썬 win32api에서 가져올 수 있으며, 그것은 매우 혼란

(sandbox_virtenv) D:\test\py2exe_test>python 
Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import win32api 
>>> 
,536,

여기에서 뭔가 명확하지 않은 것이 있으면 알려주세요. 귀하의 조언을 주셔서 감사합니다.

답변

9

나는 이것을 알아 냈지만 그 과정은 즐겁지 않습니다. PyWin32 설치 3 문제가 있습니다

:

  1. 그것은 당신의 파이썬은 레지스트리에서 설치 위치를 읽습니다.
  2. 입니다 귀하의 lib 디렉토리가 python.exe를
  3. 64 비트 파이썬 2를 실행하는 경우 그것은 % windir % \ system32를 그래서

-3 DLL을 덤프를 포함하는 디렉토리의 자식이라고 가정합니다.64 비트 Windows 또는 32 32 및 가상 환경에 대한 7은 C :

  1. 복사 python.exe를하고 pythonw.exe C에서 : \ 스크래치 \의 env1의 \ 과정 \ \ 스크래치 \의 env1은 다음과 같습니다 c : \ scratch \ env1
  2. 레지스트리 키 HKLM \ SOFTWARE \ Python \ PythonCore \ 2.7 \ InstallPath \에서 값 "(기본값)"을 "c : \ scratch \ env1 \"로 업데이트하십시오. 이전 값)
  3. 가상 환경을 활성화 한 명령 줄에서 installer.exe를 직접 실행하여 PyWin32를 설치하십시오. easy_install을 사용하지 마십시오. %의 WINDIR에서 \
  4. 이동 pythoncom27.dll, pywintypes27.dll 및 pythoncomloader27.dll \ 스크래치 \의 env1 :
  5. 는 C에서 원래의 값
  6. 삭제 python.exe를하고 pythonw.exe로 다시 INSTALLPATH 레지스트리 키를 설정 % \ system32를 \ C에 : \ 스크래치 \의 env1의 \은 (python27.dll을 이동하지 않거나 당신이 그것을 후회할) pywin32가 외부에 설치하지 않고

이 가상 환경에서 장고 - MSSQL을 실행하는 데 충분히 잘 작동합니다 가상 환경의

+0

3 단계에서 명령 줄을 관리자로 실행해야합니다. 그렇지 않으면 PyWin32가 오류로 끝납니다. –

+0

6 단계에서 '가져 오기 win32service as ws ImportError no module found'라는 메시지가 나타납니다. eclipse에서 odoo 디버그를 시작하려고 할 때. 나는이 단계가 이루어져서는 안된다고 생각한다. –

2

Windows에서 64 비트 Python에 대한 지원은 32 비트 버전보다 상대적으로 좋지 않습니다. 파이썬 공동체의 잘못이 아니라 64 비트 윈도우 용 무료 컴파일러를 얻는 것이 상대적으로 어렵다.

64 비트 버전의 Python을 설치 한 경우 64 비트 용으로 빌드 된 패키지를 사용해야합니다. 일부 간단한 Python 패키지 (순수 Python으로 작성되었으며 외부/C 라이브러리가 필요하지 않음)는 setuptools/easy_install/virtualenv를 사용하여 정상적으로 설치됩니다. 그러나 많은 64 비트 패키지가 virtualenv에 설치되면 설치가 필요할 수 있습니다.

다행히도 인기 패키지 here에 대해 64 비트 사전 컴파일 된 설치 프로그램을 찾을 수 있습니다. 먼저 패키지를 시도하십시오. 설치 프로그램은 Python의 전역/기본 설치를 대상으로하므로 virtualenv로 격리되지 않습니다. 그러나 이것들은 비공식 빌드입니다 : 귀하의 편의를 위해 무료로 제공되므로 일이 실패하거나 도움을 요청할 경우 공급자를 고소하지 마십시오.

+0

감사합니다. 그 설치 프로그램은 또한 easy_installer에 줄 때 같은 오류가 발생합니다. 슬프다. – tony

+0

.exe 설치 프로그램 (클릭 - 클릭 프로세스)을 사용/실행하고 easy_install을 사용하지 마십시오. 나는 빌드 216/최근 빌드에 대해 잘 모르겠지만 몇 달 전에 문제없이 파이썬 2.7 64 비트를 Windows 7에 64 비트 pywin32를 설치할 수있었습니다. 여전히 작동하지 않는다면 알려주세요 ... 아마도 다른 사람들이 같은 문제를 겪고 있다면 버그 추적기를 봐야 할 것입니다. – shimofuri

+0

그래, 추가 도구없이 설치가 잘 작동하지만 가상 환경에서만이 확장 기능을 설치하려고했는데, 필자의 글로벌 파이썬 설치에 필요하지 않습니다. – tony

4

최신 virtualenv-1.7.1.2에서는 --distribute 플래그로 virtualenv를 생성 해보십시오. 나는 깃발을 추가하여 당신이 가진 똑같은 문제를 해결할 수있었습니다. 다른 컴퓨터에 관련 메모에

(같은 OS는 윈도우 서버 2008 R2는) 내가 easy_install를 실행할 때마다 그렇지 않으면 새 명령 프롬프트가 열려 나타납니다,없이 --distribute 플래그를 VIRTUALENV 를 작성했다.

Windows의 Virtualenv는 어두운 미술품과 같습니다.

+0

'--distribute' 플래그는 더 이상 사용되지 않으며 지금은 아무 것도하지 않습니다. – qris

2

이 질문은 최근의 문제이지만 최근에이 문제를 해결하기 위해 내가이 작업을 위해 한 일을 공유하고자합니다. Windows에서 python kerberos 구현을 찾고 pywin32를 사용하는 kerbeors_sspi를 찾았습니다. 이 모든 것은 pip로 설치되지만 pywin32는 virtualenv 내부에 pip를 사용하여 설치할 수 없습니다.

그래서 나는 klyberos_sspi 라이브러리에 Glyph와 El (트위스트 크리에이터 BTW)에 의해 포장 된 휠인 pypiwin32를 사용하도록 패치했습니다. 그리고 이제는 모든 기능이 멋지게 작동합니다. COM에 액세스하려면 pywin32를 수동으로 설치해야합니다. 시스템에 등록해야하기 때문입니다. 여기

pypiwin32 index

건배에 대한 링크, 응답