Cách cài đặt thư viện python win32com


18

Tôi đang cố gắng cài đặt mô-đun win32com. Tôi biết tôi nên tải xuống phần mở rộng Python cho Windows , nhưng nó không hoạt động.

Sau khi tôi đã cài đặt Python cho Windows và dùng thử import win32com.client, tôi nhận được thông báo lỗi sau:

>>> import win32com.client

    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        import win32com.client
      File "C:\Python27\lib\site-packages\win32com\__init__.py", line 5, in <module>
        import win32api, sys, os

ImportError: No module named win32api

Cố gắng google để được trợ giúp về cách cài đặt win32api cho Python cũng không giúp được gì; Tôi chỉ nhắc đến phần mở rộng Python cho Windows một lần nữa.


1
Bạn đã cài đặt đúng nhị phân Python cho tiện ích mở rộng Windows cho phiên bản Python của mình chưa? Ví dụ: nếu bạn cài đặt Python 64 bit, sau đó cài đặt các tiện ích mở rộng 32 bit, các mô-đun Python thuần (như win32con) sẽ nhập, nhưng các mô-đun mở rộng C (như win32api) sẽ không; nếu bạn cài đặt Python 2.6, sau đó cài đặt các tiện ích mở rộng cho 2.7, chúng có thể nhập nhưng gặp sự cố sau đó; v.v.

10
Tại sao trên trái đất này lại được di chuyển từ Stack Overflow?!
Jean-François Corbett

Câu trả lời:


10
  1. Bắt đầu một dòng lệnh với quyền quản trị.
  2. python -m pip install pywin32
  3. C:\Program Files\Stackless36\Scripts>python pywin32_postinstall.py -install
  4. python C:\code\Python\speech\speak.py

Trường hợp speak.pybao gồm văn bản này:

import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("It works, bitches.")

Hoạt động tốt trên Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, ngày 21 tháng 12 năm 2017, 15:23:10) [MSC v.1900 64 bit (AMD64)] trên win32. Vanilla CPython đi chơi ở đây:

C:\Users\C\AppData\Local\Programs\Python\Python36-32>python.exe
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32com.client
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'win32com'
>>> exit()

C:\Users\C\AppData\Local\Programs\Python\Python36-32>python.exe -m pip install pywin32
Collecting pywin32
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/d4/2d/b927e61c4a2b0aaaab72c8cb97cf748c319c399d804293164b0c43380d5f/pywin32-223-cp36-cp36m-win32.whl (8.3MB)
    100% |████████████████████████████████| 8.3MB 50kB/s
Installing collected packages: pywin32
Successfully installed pywin32-223
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

4

Kiểm tra sys.path để đảm bảo thư mục nơi mô-đun được cài đặt ở đó, nếu không bạn phải thêm nó (cửa sổ google PYTHONPATH để được giúp đỡ về điều đó.)


1
Cảm ơn vì lời khuyên. Vấn đề hóa ra là một cái gì đó khác nhau: vì một số lý do, có hai cài đặt Python khác nhau trong sổ đăng ký, mặc dù cả hai đều trỏ đến cùng một tệp. Cài đặt lại trên cả hai đã giải quyết vấn đề.

Tôi đã thử thiết lập PYTHONPATH trong biến môi trường và vẫn không thấy điều này hoạt động. nhận được cùng một lỗi.
Soman Dubey

Đối với những người hiện đã cài đặt gói mà OP đã liên kết, bạn sẽ cần khởi động lại bảng điều khiển Python (ví dụ IDLE) để có các thay đổi cần thiết cho PYTHONPATH để cư trú sao cho bạn importsẽ làm việc.
SeldomNeedy

2

Tôi đã có cùng một vấn đề chỉ ngày hôm qua. Tôi đã cài đặt pypiwin32bằng cách sử dụng pip.

Thử

>>pip install -U pypiwin32

tại dấu nhắc lệnh

Hãy chắc chắn rằng gói Python của bạn nằm trong hệ thống PATH.

Lưu ý rằng có một vài cách khác nhau để cài đặt các mô-đun Python và như bạn đã phát hiện ra không phải tất cả chúng đều hoạt động. pip installvới -Ulàm việc cho tôi với các pypiwin32mô-đun (có chứa win32com).


1
Các -Uswitch là viết tắt của --upgradepypi.org/project/pypiwin32 là một tốt hơn đóng gói (định dạng .whl) pypi.org/project/pywin32 bởi các nhà phát triển tương tự. Tôi đọc nó python -m pipđược ưa thích chỉ pipvì lý do đường dẫn.
Cees Timmerman

Điều này làm việc cho tôi. Lưu ý rằng nếu bạn đang nhận được thông báo lỗi TypeError: 'module' object is not callable, hãy thử:python -m pip install -U pypiwin32
datalifenyc

-2

tìm tệp trong máy tính của bạn bằng cách tìm kiếm trong tất cả máy tính của bạn "win32api" khi bạn tìm thấy nó ở đây C: \ Python26 \ Lib \ win32com "điều này cho thấy bạn đã cài đặt thư viện win32com và bạn sẽ tìm thấy tệp tôi nghĩ trong" C : \ Python26 \ Lib \ site-gói \ win32 "Sau khi tất cả các tệp nên được đặt ở hai vị trí đó trong máy tính của bạn để mô-đun của bạn hoạt động, đó là trong fini".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.