2010-01-23 23 views
6

Tôi có một ứng dụng cherrypy mà tôi đã thực hiện một exe với pyinstaller. bây giờ khi tôi chạy exe nó tải chính nó hai lần vào bộ nhớ. Xem taskmanager cho thấy tải thể hiện đầu tiên vào khoảng 1k, sau đó một giây sau đó một thể hiện thứ hai của hte exe tải vào khoảng 3k ram. Nếu tôi đóng lớn hơn cả hai quá trình chết. Nếu tôi đóng hte nhỏ hơn chỉ có một cái chết.pyinstaller: 2 phiên bản của ứng dụng cherrypy exe của tôi được thực hiện

Đang tải gói exe bằng tiến trình con, nếu tôi cố gắng proc.kill(), nó chỉ giết chết phần nhỏ để người khác chạy trong bộ nhớ. Đây có phải là một tác dụng phụ của việc sử dụng cherrypy và pyinstaller cùng nhau không?

Trả lời

1

Điều quan trọng là phải biết phiên bản CherryPy bạn đang sử dụng. Dòng 2.x có thiết kế không may: tính năng autoreloader luôn bắt đầu một cá thể thứ hai của CherryPy, vì vậy đầu tiên có thể hồi sinh đứa trẻ khi nó bị giết. Điều đó đã được sửa trong phiên bản 3 để chỉ sử dụng một quy trình. Nếu bạn đang sử dụng phiên bản 2, hãy tắt tính năng tự động tải thông qua mục cấu hình:

[global] 
autoreload.on = False 
3

PyInstaller sinh ra một tiến trình con trong quá trình khởi động. Điều này được giải thích trong a section of its manual.

+0

Xin chào Giovanni, luôn là niềm vui khi nói chuyện với bạn. Tôi cần sự hỗ trợ và kinh nghiệm của bạn về câu hỏi này: http://stackoverflow.com/questions/14997414/obfuscating-python-bytecode-through-interpreter-mutation/14997695 - Cảm ơn :) – securecurve

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