ImportError: ไม่มีโมดูลชื่อ win32api


126

ฉันใช้Python 2.7และฉันต้องการที่จะใช้ในการpywin32-214 Windows 7ฉันติดตั้งpywin32-214โดยใช้msiโปรแกรมติดตั้ง แต่เมื่อฉันนำเข้าwin32apiในสคริปต์ Python ของฉันมันจะแสดงข้อผิดพลาด:

no module named win32api. 

ฉันควรทำอย่างไรดี? สามารถใช้pywin32 apiเพื่อWindows 7?


คุณติดตั้ง Python หลายเวอร์ชันหรือไม่? หากเป็นเช่นนั้นคุณแน่ใจหรือว่าพยายามนำเข้าจากเครื่องเดียวกับที่คุณติดตั้งไว้
Claudiu

เป็นไปได้ว่าตัวติดตั้ง path msi ที่ติดตั้งไว้จะแตกต่างจากพา ธ ที่คุณพยายามจะนำเข้า
aidnani8

Claudiu: ไม่ฉันได้ติดตั้ง python 2.7 บนพีซีของฉันเท่านั้น
akshay

user3193087: อันที่จริงตัวติดตั้ง msi ติดตั้งไฟล์ในไดเร็กทอรีย่อยของฉัน / python27 / ... คุณสามารถนำเข้าไฟล์ใด ๆ ที่ติดตั้งในไดเร็กทอรีย่อย ฉันถูกไหม??
akshay

คำตอบ:


247

นี่เป็นการแก้ไขกรณีของฉันตามที่พบใน Where to find the win32api module for Python?

pip install pypiwin32

ฉันใช้ python2.7 และติดตั้ง pypiwin32 เรียบร้อยแล้ว
syam

สิ่งนี้ใช้ได้กับฉันหลังจากที่ฉันรีสตาร์ท Spyder เวลาส่วนใหญ่แพ็กเกจใหม่จะทำงานทันทีหลังจากติดตั้ง แต่ไม่ใช่ในกรณีนี้
Sean McCarthy

ทำงานในเดือนมีนาคม 2020 สำหรับ Python 3.7.5! ไม่แน่ใจว่าทำไมถึงยังคงอยู่ต่อไป ..
สิ้นสุด

ฉันใช้มันกับ python2.7 และฉันได้รับข้อผิดพลาด "ข้อผิดพลาด: ไม่พบเวอร์ชันที่ตรงตามข้อกำหนด pywin32> = 223 (จาก pypiwin32) (จากเวอร์ชัน: ไม่มี)"
Avin Mathew

35

ฉันมีปัญหาเหมือนกันซึ่งฉันแก้ไขได้โดยการรีสตาร์ทตัวแก้ไข Python และเชลล์ ฉันได้ติดตั้งแล้วpywin32แต่โมดูลใหม่ยังไม่ได้รับจนกว่าจะรีสตาร์ท

ถ้าคุณได้ทำมาแล้วที่จะค้นหาในการติดตั้ง Python สำหรับคุณwin32apiและคุณควรจะหาภายใต้win32api.pyd${PYTHON_HOME}\Lib\site-packages\win32


1
สิ่งนี้ช่วยฉันด้วย ตอนแรกมันจะใช้ไม่ได้ จากนั้นฉันเริ่มต้นใหม่ทุกอย่างและใช้งานได้
Sean McCarthy

30

ตามpywin32 githubคุณต้องเรียกใช้

    pip install pywin32

และหลังจากนั้นคุณต้องวิ่ง

    python Scripts/pywin32_postinstall.py -install

ฉันรู้ว่าฉันกำลังรื้อฟื้นเธรดเก่า แต่ฉันเพิ่งเจอปัญหานี้และนี่เป็นวิธีเดียวที่จะแก้ได้


สิ่งนี้ได้ผลสำหรับฉัน ฉันใช้ pipenv ในโครงการของฉัน ต้องเรียกใช้ post_install.py ในโฟลเดอร์ env ของฉัน
poWar

ตอนนี้ฉันกำลังมีปัญหากับเรื่องนี้เช่นกัน มีข้อมูลเชิงลึกว่าทำไมมันถึงไม่ทำงาน? ฉันได้รับข้อผิดพลาดนี้ Traceback (โทรล่าสุดล่าสุด): ไฟล์ "C: \ Users \ tws07yi \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-Packages \ win32com_ init_ .py " บรรทัดที่ 32 ในคีย์ SetupEnvironment = win32api.RegOpenKey ( HKEY_LOCAL_MACHINE, keyName, 0, KEY_QUERY_VALUE) AttributeError: module 'win32api' ไม่มีแอตทริบิวต์ 'RegOpenKey'
twseewx

@twseewx ลองรันเป็นแอดมินดู
Juano

@Juano เก็บผลเป็นครั้งสุดท้าย
twseewx

@twseewx ลองระบุเวอร์ชันอื่นของ pywin32 เมื่อทำการติดตั้ง ฉันเพิ่งติดตั้งอีกครั้งและสำหรับฉันก็ใช้งานได้ บางทีการดาวน์โหลดของคุณอาจเสียหายหรือคุณอาจลองอัปเดตเวอร์ชัน python ของคุณ
Juano

14

ฉันไม่พบแพ็คเกจคำตอบที่ได้รับการโหวตมากที่สุดใน Python 3 dist

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยติดตั้งโมดูล pywin32:

ในหลามปกติ:

pip install pywin32

ในอนาคอนดา:

conda install pywin32

การติดตั้ง python ของฉัน (Intel® Distribution for Python) มีปัญหาการพึ่งพาและทำให้เกิดข้อผิดพลาดนี้ หลังจากติดตั้งโมดูลนี้แล้วจะหยุดปรากฏ


ฉันใช้conda install pywin32แล้วมันได้ผล ขอบคุณมาก
Nava Bogatee

1

หลังจากติดตั้ง pywin32

ขั้นตอนในการติดตั้งโมดูลของคุณอย่างถูกต้อง (pywin32)

  1. ค้นหาก่อนว่า python pip ของคุณอยู่ที่ไหน

    1a ตัวอย่างเช่นในกรณีของฉันตำแหน่ง pip - C: \ Users \ username \ AppData \ Local \ Programs \ Python \ Python36-32 \ Scripts

  2. จากนั้นเปิดพรอมต์คำสั่งของคุณและเปลี่ยนไดเร็กทอรีไปยังตำแหน่งโฟลเดอร์ pip ของคุณ

    cd C:\Users\username\AppData\Local\Programs\Python\Python36-32\Scripts
    
    C:\Users\username\AppData\Local\Programs\Python\Python36-32\Scripts>pip install 
    pypiwin32

รีสตาร์ท IDE ของคุณ

ตอนนี้คุณสามารถใช้โมดูลได้แล้ว

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