2011-01-13 38 views
27

Tôi đã cài đặt Microsoft Visual Studio 2008 rồi. Tôi đã tải xuống tệp zip Python for Windows extensions và trích xuất nội dung vào thư mục Python27 của mình. Bây giờ có một thư mục con được gọi là pywin32-214. (Phần 32 có phải là vấn đề không? Tôi đang sử dụng hệ thống 64 bit.) Đây là bản sao từ dòng lệnh:Lỗi giá trị khi cài đặt Python cho các tiện ích mở rộng của Windows

C:\Python27\pywin32-214>setup.py -q install 
Building pywin32 2.7.214.0 
Traceback (most recent call last): 
    File "C:\Python27\pywin32-214\setup.py", line 2152, in <module> 
    ('', ('pywin32.pth',)), 
    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 "C:\Python27\pywin32-214\setup.py", line 1251, in run 
    install.run(self) 
    File "C:\Python27\lib\distutils\command\install.py", line 563, in run 
    self.run_command('build') 
    File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command 
    self.distribution.run_command(command) 
    File "C:\Python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\Python27\pywin32-214\setup.py", line 596, in run 
    build.run(self) 
    File "C:\Python27\lib\distutils\command\build.py", line 127, in run 
    self.run_command(cmd_name) 
    File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command 
    self.distribution.run_command(command) 
    File "C:\Python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run 
    self.build_extensions() 
    File "C:\Python27\pywin32-214\setup.py", line 858, in build_extensions 
    self.compiler.initialize() 
    File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize 
    vc_env = query_vcvarsall(VERSION, plat_spec) 
    File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsal 
l 
    raise ValueError(str(list(result.keys()))) 
ValueError: [u'path'] 

Tôi không biết phải làm gì. Cứu giúp?

Trả lời

17

Nếu bạn có một cài đặt Python 64 bit:

Cài đặt "Microsoft Visual Studio 2008 Professional Edition" với "X64 biên dịch và công cụ" tùy chọn kích hoạt.

Ngoài ra, tải pywin32-214.win-amd64-py2.7.exe từ http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

+0

Nó nói tôi không có một thư mục Python27, mà tôi làm ... Bạn nghĩ có thể nó không tương thích với Python 2.7.1? – user460847

+0

Sau đó, bạn có thể có một cài đặt Python 32 bit và cần phải tải về pywin32-214.win32-py2.7.exe – cgohlke

+0

Đã thử rằng ... nó đã thành công trong việc tìm kiếm thư mục nhưng sau đó thanh cài đặt vẫn hoàn toàn trống trong 10 phút. Tôi sẽ xem nếu tôi có thể tìm thấy một cài đặt Python 64 bit và sau đó thử lại .exe gốc một lần nữa. – user460847

0

Python cho phần mở rộng của Windows chỉ được hỗ trợ trên

32-bit MS Windows (95/98), 32-bit MS Windows (NT/2000/XP), tất cả 32-bit MS của Windows (95/98/NT/2000/XP), Win2K, WinXP, WinCE

Lấy từ the sourceforge project page. Có vẻ như bạn có thể không may mắn!

CHỈNH SỬA: Tuy nhiên ... đọc this dường như ngụ ý ngược lại.

20

Một lý do khác có thể cho vấn đề này xuất hiện là bạn vừa cài đặt Visual Studio và dấu nhắc lệnh bạn đang sử dụng đã được treo xung quanh từ thời điểm trước khi cài đặt.

Điều này là do trình cài đặt MSVC đặt vài biến môi trường và một trong các biến này (VS90COMNTOOLS) phải được đặt cho vcvarsall.bat để thực thi chính xác. Nhưng mỗi chương trình đang chạy trong Windows đều giữ bản sao cục bộ của các biến môi trường được kế thừa (sao chép) từ quá trình cha mẹ khi khởi động con. Vì vậy, sau khi con đã bắt đầu, nó không nhận được sự thay đổi được thực hiện trên các hệ thống cấp envvars. Và cách duy nhất để nhận các biến môi trường được cập nhật là máng sinh ra một cá thể mới của tiến trình con với cha mẹ đã cập nhật phiên bản của các envvars.

+0

Chính xác vấn đề của tôi sau khi cài đặt VC 2008 –

+0

Điều này thật tuyệt vời! – wlnirvana

+2

Tôi yêu bạn, có con của tôi. – Rob

8

Như đã nêu, nó đang cố gắng sử dụng trình biên dịch 32 bit cho python 64 bit. Tôi đã có thể xây dựng thành công bằng cách:

  1. Tìm vcvarsx86_amd64.bat trong C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64 (phụ thuộc vào thiết lập của bạn)
  2. Mở cmd nhắc
  3. Run SET VS90COMNTOOLS=%VS120COMNTOOLS% (phụ thuộc vào thiết lập, xem https://stackoverflow.com/a/10558328/2362877)
  4. Run vcvarsx86_amd64.bat
  5. Sau đó pip install <package>
+0

didnt làm việc cho tôi –

+0

này làm việc cho tôi để chạy 'pip cài đặt usaddress' nhưng không chạy 'SET VS90COMNTOOLS =% VS120COMNTOOLS%' Tôi đã tuy nhiên có VS90 pointint để VS100 cài đặt của tôi (VS2010 express) haveter tôi đã cài đặt VS2012. –

+0

Điều này sẽ cho phép bạn xây dựng, nhưng nó sẽ gây ra vấn đề nếu ai đó không có các thư viện VS2012 được cài đặt cố gắng chạy phần mở rộng. Nó sẽ là tốt hơn để cài đặt VS2008 với trình biên dịch 64-bit tùy chọn và sử dụng: http://stackoverflow.com/questions/6692402/visual-studio-2008-for-windows-7-64-bit-for-creating- 64-bit-binaries – mmitchell

0

Tôi đã thử tất cả các câu trả lời khác và nhiều hơn nữa. Đã kết thúc cài đặt python 32-bit, đã khắc phục sự cố ngay lập tức.

Nếu đây là tùy chọn, rất có thể là cách khắc phục dễ nhất.

1

Nếu bạn đang cố định trên Python 2.7 64 bit (như tôi) và quá rẻ để mua VS2008 Professional, bạn cũng có thể tải xuống VS2008 Express và cài đặt Windows 7 SDK để có trình biên dịch 64 bit tương thích miễn phí. Sau đó, chạy Windows 7 SDK SetEnv.Cmd kịch bản và sau đó là setup.py:

> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" 
> setup.py -q install 

Các SetEnv.Cmd nên thiết lập tất cả các biến môi trường cần thiết cho xây dựng. Khi nó chạy, sẽ có một thông báo cho biết "Nhắm mục tiêu Windows 7 x64 gỡ lỗi". Bạn cũng có thể sử dụng lệnh này để biên dịch trong chế độ phát hành:

> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release 
> setup.py -q install 
7

Không ai trong số những câu trả lời làm việc cho tôi nhưng tôi tìm thấy giải pháp trên theo dõi vấn đề:

  1. mở cmd.
  2. cd "C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin"
  3. Loại vcvars32.bat hoặc vcvars64.bat
  4. Trong đóng cửa nhanh chóng và -without cùng: cd trở lại Mô-đun Python bạn đang cố gắng cài đặt.
  5. Mã bây giờ sẽ được cài đặt.

Nguồn: http://bugs.python.org/issue7511

Các vấn đề liên quan