2010-02-23 35 views
6

Tôi cần giữ một số lượng lớn các máy chạy Windows XP chạy cùng một phiên bản python, với một số mô-đun, một trong số đó là python-win32. Tôi đã nghĩ về việc cài đặt python trên một ổ đĩa mạng được gắn bởi tất cả các máy khách và chỉ điều chỉnh đường dẫn trên máy khách. Python khởi động tốt từ mạng, nhưng khi nhập win32com tôi nhận được một lỗi pop-up nói:Cài đặt python với phần mở rộng python win32 trên một ổ đĩa mạng

The procedure entry point [email protected]@[email protected]@[email protected] could not be located in the dynamic link library pywintypes24.dll

sau khi gạt bỏ hộp thoại thông điệp mà tôi nhận được trong giao diện điều khiển:

ImportError: DLL load failed: The specified procedure could not be found.

Tôi tìm kiếm trên python thư mục cho pywintypes24.dll và nó hiện diện trong "Lib \ site-packages \ pywin32_system32".

Tôi đang thiếu gì và có cách nào khác để tôi có thể cài đặt Python + Python-Win32 + mô-đun bổ sung một lần và để chúng chạy trên nhiều máy không? Tôi không có quyền truy cập vào các công cụ quản lý hệ thống của Microsoft, vì vậy tôi cần phải có một chút công nghệ thấp hơn thế.

Trả lời

7

Trên mỗi máy, bạn phải chạy về cơ bản sau pywin32_postinstall.py -install một lần. Giả sử cài đặt python của bạn trên mạng là N:\Python26, chạy lệnh trên mỗi khách hàng như sau:

N:\Python26\python.exe N:\Python26\Scripts\pywin32_postinstall.py -install 

Một điều quan trọng là Good Luck!. Lý do là bạn có thể cần thực hiện điều này là admin. Trong trường hợp của tôi thiết lập như vậy làm việc cho tất cả, nhưng một máy tính. Tôi vẫn không hiểu tại sao.

0

"" "Tôi đã tìm kiếm thư mục python cho pywintypes24.dll và nó có trong" Lib \ site-packages \ pywin32_system32 "" "". Sự tồn tại của dll không có trong câu hỏi. Đó có phải là điểm vào trong dll đó không?

Bạn đã thử cài đặt chính xác cùng một cấu hình trên ổ đĩa không phải mạng?

Bạn đã thử nhập các mô-đun khác trong gói chưa?

Bạn đã kiểm tra các dll bằng bộ tập phụ thuộc hay gì đó tương tự?

Liệu "24" trong pywintypes24.dll có nghĩa là Python 2.4? Bạn đang chạy phiên bản Python nào?

+0

Vâng, DLL chứa các con trỏ trích dẫn, và nó có md5sum giống như DLL trên của tôi địa phương C: cài đặt mà không có vấn đề tải mô-đun win32com. – florin

0

Bạn có thể sử dụng batch files running at boot để

  • Gắn kết các mạng chia sẻ (net use \\server\share)
  • Sao chép Python và các gói cài đặt từ mạng chia sẻ vào một thư mục địa phương
  • Kiểm tra phiên bản của trình cài đặt msi chống lại phiên bản đã cài đặt
  • Nếu khác, gỡ cài đặt Python và tất cả các gói phụ thuộc phiên bản
  • Cài đặt lại tất cả các gói

Điều này sẽ là khá nhiều một cuộn hệ thống quản lý trung tâm của riêng bạn cho phần mềm đó.

1

Python (hoặc chính xác, HĐH) tìm kiếm các tệp DLL bằng os.environ ["PATH"] chứ không phải bằng cách tìm kiếm sys.path.

Vì vậy, bạn có thể khởi động Python bằng cách sử dụng tệp .cmd đơn giản thay vào đó thêm \ server \ share \ python26 vào đường dẫn (trình cài đặt (hoặc bạn) sao chép các tệp DLL từ \ server \ share \ python26 \ lib \ site- các gói \ pywin32-system32 tới \ server \ share \ python26).

Hoặc, bạn có thể thêm đoạn mã sau vào kịch bản của bạn trước khi họ cố gắng nhập win32api vv:

# Add Python installation directory to the path, 
    # because on Windows 7 the pywin32 installer fails to copy 
    # the required DLLs to the %WINDIR%\System32 directory and 
    # copies them to the Python installation directory instead. 
    # Fortunately, in Python it is possible to modify the PATH 
    # before loading the DLLs. 
    os.environ["PATH"] = sys.prefix + ";" + os.environ.get("PATH") 
    import win32gui 
    import win32con 
Các vấn đề liên quan