วิธีการติดตั้งไลบรารี่ win32com


18

ฉันพยายามติดตั้งโมดูล win32com ฉันรู้ว่าฉันควรดาวน์โหลดPython สำหรับ Windows ส่วนขยายแต่ใช้ไม่ได้

หลังจากฉันติดตั้ง Python สำหรับ Windows แล้วลองimport win32com.clientฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

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

การลองใช้ google เพื่อขอความช่วยเหลือเกี่ยวกับวิธีการติดตั้ง win32api สำหรับ Python ก็ไม่ได้ช่วยอะไรเช่นกัน ฉันเพิ่งอ้างถึง Python สำหรับส่วนขยาย Windows อีกครั้ง


1
คุณติดตั้งไบนารีที่ถูกต้องของ Python สำหรับส่วนขยาย Windows สำหรับ Python เวอร์ชันของคุณหรือไม่ ตัวอย่างเช่นถ้าคุณติดตั้ง Python 64 บิตแล้วติดตั้งส่วนขยาย 32- บิตโมดูล pure-Python (เหมือนwin32con) จะนำเข้า แต่โมดูล C-extension (เช่นwin32api) จะไม่; หากคุณติดตั้ง Python 2.6 ให้ติดตั้งส่วนขยายสำหรับ 2.7 พวกเขาอาจนำเข้า แต่ล้มเหลวในภายหลัง ฯลฯ

10
ทำไมบนโลกนี้จึงถูกโยกย้ายจาก Stack Overflow!
Jean-François Corbett

คำตอบ:


10
  1. เริ่มบรรทัดคำสั่งด้วยสิทธิ์ผู้ดูแลระบบ
  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

ที่speak.pyประกอบด้วยข้อความนี้:

import win32com.client

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

ทำงานได้ดีบน Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 ธันวาคม 2017, 15:23:10) [MSC v.1900 64 บิต (AMD64)] บน win32 วานิลลา CPython แฮงค์เอาท์ที่นี่:

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

ตรวจสอบ sys.path เพื่อให้แน่ใจว่าไดเรกทอรีที่ติดตั้งโมดูลอยู่ในนั้นไม่เช่นนั้นคุณต้องเพิ่ม (หน้าต่าง google PYTHONPATH เพื่อขอความช่วยเหลือในเรื่องนี้)


1
ขอบคุณสำหรับคำแนะนำ. ปัญหากลับกลายเป็นสิ่งที่แตกต่าง: ด้วยเหตุผลบางอย่างมีการติดตั้ง Python ที่แตกต่างกันสองรายการในรีจิสทรีแม้ว่าทั้งคู่จะชี้ไปที่ไฟล์เดียวกัน การติดตั้งใหม่ทั้งสองช่วยแก้ปัญหาได้

ฉันลองตั้งค่า PYTHONPATH ในตัวแปรสภาพแวดล้อมและยังไม่เห็นการทำงานนี้ รับข้อผิดพลาดเดียวกัน
Soman Dubey

สำหรับบรรดาของคุณที่ติดตั้งแพคเกจที่ OP ที่เชื่อมโยงคุณจะต้องรีสตาร์ทคอนโซล Python ของคุณ (เช่น IDLE) สำหรับการเปลี่ยนแปลงที่จำเป็นใน PYTHONPATH เพื่อเติมข้อมูลตามที่คุณimportต้องการ
SeldomNeedy

2

ฉันมีปัญหาเดียวกันเมื่อวานนี้เท่านั้น ผมติดตั้งโดยใช้pypiwin32pip

ลอง

>>pip install -U pypiwin32

ที่พรอมต์คำสั่ง

ตรวจสอบให้แน่ใจว่าแพ็คเกจ Python ของคุณอยู่ใน PATH ของระบบ

โปรดทราบว่ามีวิธีที่แตกต่างกันสองสามวิธีในการติดตั้งโมดูล Python และในขณะที่คุณค้นพบว่าไม่สามารถใช้งานได้ทั้งหมด pip installด้วยการ-Uทำงานให้ฉันกับpypiwin32โมดูล (ซึ่งมีwin32com)


1
-Uสวิตช์ย่อมา--upgradeและpypi.org/project/pypiwin32เป็นดีกว่าบรรจุ (รูปแบบ .whl) pypi.org/project/pywin32โดย devs เดียวกัน ฉันอ่านที่python -m pipต้องการเพียงpipเพื่อเหตุผลเส้นทาง
Cees Timmerman

สิ่งนี้ใช้ได้สำหรับฉัน โปรดทราบว่าหากคุณได้รับข้อความแสดงข้อผิดพลาดTypeError: 'module' object is not callableให้ลอง:python -m pip install -U pypiwin32
datalifenyc

-2

ค้นหาไฟล์ในคอมพิวเตอร์ของคุณโดยค้นหาในคอมพิวเตอร์ทั้งหมดของคุณ "win32api" เมื่อคุณพบไฟล์วางไว้ที่นี่ C: \ Python26 \ Lib \ win32com "นี่จะเป็นการระงับการติดตั้งไลบรารี win32com และคุณจะพบไฟล์ที่ฉันคิดใน" C : \ Python26 \ Lib \ site-packages \ win32 "หลังจากไฟล์ทั้งหมดควรอยู่ในสองที่ในคอมพิวเตอร์ของคุณเพื่อให้โมดูลของคุณทำงานได้อย่างสมบูรณ์"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.