簡體   English   中英

使用py2exe構建python時導入錯誤

[英]Import error when building python using py2exe

我正在嘗試制作一個小腳本來遠程管理Windows計算機(目前只關閉)。 我使用的方法涉及webapp2服務器。 我想將我的第一次嘗試編譯成.exe。 我遇到的問題是,在成功編譯之后,我去運行它並返回錯誤:

Traceback (most recent call last):
 File "web2.py", line 2, in <module>
 File "webapp2.pyc", line 25, in <module>
 File "webob\__init__.pyc", line 1, in <module>
 File "webob\datetime_utils.pyc", line 10, in <module>
ImportError: No module named email.utils

我也用cx_Freeze嘗試了這個,它有類似的結果。 我遵循導入錯誤時給出的建議, 而使用py2exe捆綁無濟於事。

如果它有任何用途,這里是我的代碼:

import cgi
import webapp2
import os
import socket


def ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(('google.com', 0))
    return s.getsockname()[0]

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.out.write("""
          <html>
            <body>
              <form action="/shutdown" method="link">
                <div><input type="submit" value="Shutdown"></div>
              </form>
            </body>
          </html>""")


class shutdown(webapp2.RequestHandler):
    def get(self):
        self.response.out.write('<html><body>Shutting down...<pre>')
        self.response.out.write('</pre></body></html>')
        os.system("shutdown -p -f")

app = webapp2.WSGIApplication([('/', MainPage),
                              ('/shutdown', shutdown)],
                              debug=True)
def main():
    from paste import httpserver
    httpserver.serve(app, host=ip(), port='80')

if __name__ == '__main__':
    main()

先感謝您。

編輯:

我發現使用modulefinder有很多模塊沒有被導入。 但是,我不知道在正常運行或僅在進口或類似情況下是否發生這種情況。

http://pastebin.com/s0U9WHJ6

我發現問題是我假設py2exe會像解釋器那樣導入webob。 實際上我需要將webob文件夾放在我正在構建的文件夾中。

我不確定,但您可以嘗試在setup.py中專門包含email.utils,方法是在導入py2exe的腳本中將以下參數添加到setup函數調用中:

options={"py2exe": {'includes': ["email.utils"]}}

那,或者您可以在導入webapp2之前嘗試特定地導入它,就像第1行一樣:

import email.utils
import cgi
import webapp2

如果這表示無法找到不同的模塊,請嘗試在包含列表中添加模塊:

options={"py2exe": {'includes': ["email.utils", "othermodulename"]}}

或者特別是再次導入它。 希望這可以幫助! :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM