[英]python multiprocessing on windows, if __name__ == “__main__”
[英]how to run python application on Linux and Windows with if __name__== '__main__'
我真的不明白使用if __name__ == '__main__'
與僅使文件可執行之間的區別。 我需要確保同一文件將同時在Linux和Windows上運行。 我正在Linux上工作。 我試圖為此使用if __name__ == '__main__
,但是它不起作用。 任何人都可以建議如何使代碼在Linux和Windows上都能工作。
我的項目結構:
-test(project) -test(folder-python package) -static dir -templates dir -__init__.py -methods.py -views.py -mydatabase.py -runserver.py
這是代碼:
初始化 .py
from flask import Flask
application = Flask(__name__)
application.config.update(DEBUG=True,SECRET_KEY='key')
import view
運行服務器
#!/usr/bin/python
from test import application
application.run()
然后從終端運行
path/to/file/ ./runserver.py
它在Linux上完美運行。 但是我需要將此代碼提供給可能在Windows上使用它的人們。 因此,為確保其正常工作,我嘗試執行以下操作:
我在包內創建了文件runapp.py:
-test(project)
-test(folder-python package)
-static dir
-templates dir
-__init__.py
-methods.py
-views.py
-mydatabase.py
-runapp.py
從init .py和runserver.py中刪除所有代碼,並將以下代碼放入runapp.py中:
runapp.py
from flask import Flask
application = Flask(__name__)#instance of WSGI application
application.config.update(DEBUG=True,SECRET_KEY='hello123')
import view
if __name__ == '__main__':
application.run()
在此嘗試從終端運行它之后:
path/to/file python runapp.py
但是出現ImportError:沒有名為flask的模塊
顯然, if __name__=='__main__'
我在做錯事或不明白該如何使用
我將非常感謝有關如何使文件同時在Linux和Windows上可執行的建議。
您沒有在需要python的地方安裝flask。 這與名稱主體無關。
if __name__=='__main__'
,則可以將python文件用作模塊和主應用程序文件。 它允許您導入文件以進行測試或重用函數和類。
我找到了問題的答案。
我保留了所有內容(使用init .py,runserver.py),並在Windows上進行了嘗試。在Linux和Windows上運行代碼的唯一區別是:
運行服務器
#!/usr/bin/python
from test import application
application.run()
在Linux上使用chmod + x runserver.py使文件可執行
然后在終端:path / to / file ./runserver.py
在Windows中的cmd中:path / to / file python runserver.py
在兩個操作系統上都可以正常工作。 謝謝大家。
您可以看到此擴展程序,以執行最專業的此過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.