2016-11-21 20 views
5

Tôi gặp một thời gian khó khăn khắc phục lỗi này, tôi đã tìm kiếm khắp mọi nơi cho rằng thông báo lỗi và không có gì dường như có liên quan đến tình hình của tôi:-Windows PyInstaller Lỗi "thất bại trong việc thực thi kịch bản" Khi App Clicked

"failed to execute script new-app" 

new-app là chương trình GUI python của tôi. Khi tôi chạy pyinstaller bằng lệnh này:

pyinstaller.exe --onedir --hidden-import FileDialog --windowed --noupx new-app.py 

Nó hoạt động trơn tru. Ngoài ra, khi tôi thực hiện các dòng lệnh để chạy chương trình gui, nó hoạt động một cách hoàn hảo và GUI được tạo bằng lệnh này:

.\dist\new-app\new-app.exe 

Nhưng khi tôi đi đến tập tin đó hy vọng để có thể nhấp vào ứng dụng để nhận được GUI, nó mang lại cho tôi lỗi nói trên. Tại sao vậy?

Tôi đang sử dụng python2.7 và hệ điều hành là Windows 7 Enterprise.

Mọi thông tin đầu vào sẽ được đánh giá cao và cảm ơn trước rất nhiều.

+0

@eryksun xin lỗi, đó là lỗi đánh máy, tôi đang sửa nó ngay bây giờ. – aBiologist

+0

Xong sửa lỗi đánh máy! – aBiologist

Trả lời

9

Vâng, tôi đoán tôi đã tìm thấy giải pháp cho câu hỏi của riêng tôi, đây là cách tôi đã làm nó:

Cho dù tôi đã có thể chạy thành công chương trình sử dụng lệnh python bình thường cũng như thành công chạy PyInstaller và được có thể thực hiện ứng dụng "new_app.exe" bằng cách sử dụng dòng lệnh được đề cập trong câu hỏi trong cả hai trường hợp hiển thị GUI mà không có vấn đề gì cả. Tuy nhiên, chỉ khi tôi nhấp vào ứng dụng, nó sẽ không cho phép hiển thị GUI và không có lỗi nào được tạo ra.

Vì vậy, điều tôi đã làm là thêm thông số bổ sung --debug trong lệnh pyinstaller và xóa tham số --windowed để tôi có thể xem điều gì thực sự xảy ra khi ứng dụng được nhấp và tôi phát hiện ra lỗi có nhiều ý nghĩa khi tôi theo dõi nó, về cơ bản đã phàn nàn rằng "some_image.jpg" không có tệp hoặc thư mục nào như vậy.

Lý do tại sao nó phàn nàn và không phàn nàn khi tôi chạy tập lệnh từ vị trí đầu tiên hoặc thậm chí sử dụng dòng lệnh "./" là do hình ảnh tệp tồn tại trong cùng một đường dẫn với tập lệnh nhưng khi pyinstaller tạo ra "dist" thư mục trong đó có các sản phẩm ứng dụng nó làm cho một cảm giác hoàn hảo rằng các tập tin hình ảnh không có và vì vậy tôi về cơ bản di chuyển nó vào thư mục dist nơi mà các ứng dụng có thể click là có!

+0

Explorer đặt thư mục hoạt động thành thư mục mở của tệp đích khi nhấp đúp vào tệp. Nhưng tệp thực thi của bạn có thể chạy với bất kỳ thư mục làm việc nào và nó vẫn có thể tìm thấy tất cả dữ liệu của nó tương ứng với chính nó. Thông thường với một chương trình đông lạnh là 'os.path.dirname (sys.argv [0])' hoặc 'os.path.dirname (sys.executable)'. Tốt hơn là sử dụng 'os.path.join' để tạo đường dẫn cho các tệp dữ liệu của bạn, nhưng bạn cũng có thể thay đổi thư mục làm việc thông qua' os.chdir'. – eryksun

+0

Cảm ơn người đàn ông, bạn xứng đáng nhận được nhiều kudo hơn (y) –

+0

Cách tiếp cận này giúp ích. Cảm ơn bạn. –

Các vấn đề liên quan