繁体   English   中英

如何使用__name __ =='__main__'在Linux和Windows上运行python应用程序

[英]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

在两个操作系统上都可以正常工作。 谢谢大家。

您可以看到此扩展程序,以执行最专业的此过程。

http://flask-script.readthedocs.org/en/latest/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM