Cara menginstal perpustakaan python win32com

18

Saya mencoba menginstal modul win32com. Saya tahu saya harus mengunduh ekstensi Python untuk Windows , tetapi tidak berfungsi.

Setelah saya menginstal Python untuk Windows dan mencoba import win32com.client, saya mendapatkan pesan kesalahan berikut:

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

Mencoba ke google untuk bantuan tentang cara menginstal win32api untuk Python juga tidak membantu; Saya hanya dirujuk ke ekstensi Python untuk Windows lagi.

NiklasR
sumber
1
Apakah Anda menginstal biner Python kanan untuk ekstensi Windows untuk versi Python Anda? Misalnya, jika Anda menginstal Python 64-bit, maka instal ekstensi 32-bit, modul pure-Python (suka win32con) akan mengimpor, tetapi modul ekstensi-C (suka win32api) tidak akan; jika Anda menginstal Python 2.6, maka instal ekstensi untuk 2.7, mereka dapat mengimpor tetapi macet nanti; dll
10
Kenapa sih ini dimigrasikan dari Stack Overflow ?!
Jean-François Corbett

Jawaban:

10
  1. Mulai baris perintah dengan hak admin.
  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

Di mana speak.pyterdiri dari teks ini:

import win32com.client

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

Bekerja dengan baik pada Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 Desember 2017, 15:23:10) [MSC v.1900 64 bit (AMD64)] pada win32. Vanilla CPython bergaul di sini:

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.
Cees Timmerman
sumber
4

Periksa sys.path untuk memastikan direktori tempat modul diinstal di sana, jika tidak Anda harus menambahkannya (google PYTHONPATH windows untuk bantuan dengan itu.)


sumber
1
Terima kasih atas sarannya. Masalahnya ternyata sesuatu yang berbeda: untuk beberapa alasan ada dua instalasi Python yang berbeda dalam registri, meskipun keduanya menunjuk ke file yang sama. Menginstal ulang pada keduanya memecahkan masalah.
Saya mencoba mengatur PYTHONPATH dalam variabel lingkungan dan masih tidak melihat ini berfungsi. mendapatkan kesalahan yang sama.
Soman Dubey
Bagi Anda yang sekarang menginstal paket yang tertaut OP, Anda harus me-restart konsol Python Anda (misalnya IDLE) untuk perubahan yang diperlukan untuk PYTHONPATH untuk mengisi sedemikian rupa sehingga Anda importakan bekerja.
SeldomNeedy
2

Saya memiliki masalah yang sama hanya kemarin. Saya menginstal pypiwin32menggunakan pip.

Mencoba

>>pip install -U pypiwin32

di command prompt

Pastikan paket Python Anda ada di sistem PATH.

Perhatikan bahwa ada beberapa cara berbeda untuk menginstal modul Python, dan seperti yang Anda temukan tidak semuanya bekerja. pip installdengan -Ubekerja untuk saya dengan pypiwin32modul (yang berisi win32com).

David Willis
sumber
1
The -Uberalih singkatan --upgradedan pypi.org/project/pypiwin32 adalah baik-dikemas (format .whl) pypi.org/project/pywin32 oleh devs yang sama. Saya membaca yang python -m piplebih disukai hanya pipkarena alasan jalur.
Cees Timmerman
Ini berhasil untuk saya. Perhatikan bahwa jika Anda menerima pesan kesalahan TypeError: 'module' object is not callable, coba:python -m pip install -U pypiwin32
datalifenyc
-2

mencari file di komputer Anda dengan mencari di semua komputer Anda "win32api" setelah Anda menemukannya taruh di sini C: \ Python26 \ Lib \ win32com "ini seandainya Anda sudah menginstal perpustakaan win32com dan Anda akan menemukan file yang saya pikir dalam" C : \ Python26 \ Lib \ situs-paket \ win32 "Setelah semua file tersebut harus terletak di dua tempat di komputer Anda agar modul Anda berfungsi, itu ada di fini".

pengguna347582
sumber