精华内容
下载资源
问答
  • __main__.py文件用来做什么的,我应该把什么类型的代码放进去,什么时候应该有一个?通常,通过在命令行中命名.py文件来运行python程序:$ python my_program.py您还可以创建一个包含代码的目录或压缩文件,并包括...

    __main__.py文件是用来做什么的,我应该把什么类型的代码放进去,什么时候应该有一个?

    通常,通过在命令行中命名.py文件来运行python程序:

    $ python my_program.py

    您还可以创建一个包含代码的目录或压缩文件,并包括一个__main__.py。然后您可以在命令行上简单地命名目录或zipfile,它会自动执行__main__.py:

    $ python my_program_dir

    $ python my_program.zip

    # Or, if the program is accessible as a module

    $ python -m my_program

    您必须自己决定是否可以从这样的执行中获益。

    注意,__main__模块通常不来自__main__.py文件。它可以,但通常不会。当运行像python my_program.py这样的脚本时,该脚本将作为__main__模块而不是my_program模块运行。对于以python -m my_module或其他几种方式运行的模块也会发生这种情况。

    如果您在错误消息中看到名称__main__,这并不意味着您应该查找__main__.py文件。

    我发现python -m program_dir和python program_dir有点不同:后者从不在目录中运行__init__.py(如果有)。

    @布莱克:现在似乎不是这样。我刚试过python3 program_dir,它运行__init__.py。

    @mk12我使用python 2.7。所以…

    __main__.py文件的用途是什么?

    创建python模块时,通常让模块在作为程序入口点运行时执行一些功能(通常包含在main函数中)。这通常是通过在大多数python文件的底部放置以下常见的习惯用法来完成的:

    if __name__ == '__main__':

    # execute only if run as the entry point into the program

    main()

    对于使用__main__.py的python包,您可以获得相同的语义。这是一个Linux shell提示,$,如果Windows上没有bash(或其他posix shell),只需在demo/____.py上创建这些文件,内容在EOF之间:

    $ mkdir demo

    $ cat > demo/__init__.py << EOF

    print('demo/__init__.py executed')

    def main():

    print('main executed')

    EOF

    $ cat > demo/__main__.py << EOF

    print('demo/__main__.py executed')

    from __init__ import main

    main()

    EOF

    (在posix/bash shell中,通过在每个cat命令末尾输入ctrl+d(文件结束字符),可以在不使用<< EOFs和结束EOF的情况下执行上述操作)

    现在:

    $ python demo

    demo/__main__.py executed

    demo/__init__.py executed

    main executed

    你可以从文档中得到这个。文件上说:

    __main__ — Top-level script environment

    '__main__' is the name of the scope in which top-level code executes.

    A module’s __name__ is set equal to '__main__' when read from standard

    input, a script, or from an interactive prompt.

    A module can discover whether or not it is running in the main scope

    by checking its own __name__, which allows a common idiom for

    conditionally executing code in a module when it is run as a script or

    with python -m but not when it is imported:

    if __name__ == '__main__':

    # execute only if run as a script

    main()

    For a package, the same effect can be achieved by including a

    __main__.py module, the contents of which will be executed when the module is run with -m.

    拉链

    您也可以将它打包成一个单独的文件,然后像这样从命令行运行它-但是请注意,压缩包不能作为入口点执行子包或子模块:

    $ python -m zipfile -c demo.zip demo/*

    $ python demo.zip

    demo/__main__.py executed

    demo/__init__.py executed

    main() executed

    __main__.py用于zip文件中的python程序。运行zip文件时将执行__main__.py文件。例如,如果zip文件是这样的:

    test.zip

    __main__.py

    其中__main__.py的含量为

    import sys

    print"hello %s" % sys.argv[1]

    然后,如果我们运行python test.zip world,我们将把hello world取出来。

    因此,当对zip文件调用python时,__main__.py文件将运行。

    在yourpackage中创建__main__.py使其可执行为:

    $ python -m yourpackage

    如果只有程序作为模块可访问,那么-m才有效,否则可以使用python注:没有-m选项

    @Benyaminjafari不能编写不能作为模块访问的命令行python程序。也许你是指package?

    当我们创建一个包含main.py的python包来运行它时,python -m不起作用,-m是一个冗余选项,但是python工作得很好。

    如果脚本是目录或zip文件而不是单个python文件,则当"script"作为参数传递给python解释器时,将执行__main__.py。

    展开全文
  • 【背景】在看flower的时候看到__main__.py文件,不知道具体做什么用?故先进行测试看看。【测试代码】测试代码目录结构如下:.`-- test|-- __init__.py|-- __main__.py|-- dep.py__init__.py为空,表示test一个...

    【背景】

    在看flower的时候看到__main__.py文件,不知道具体做什么用?

    故先进行测试看看。

    【测试代码】

    测试代码目录结构如下:

    .

    `-- test

    |-- __init__.py

    |-- __main__.py

    |-- dep.py

    __init__.py为空,表示test是一个package

    __main__.py内容如下:

    [root@typhoeus79 ice_test_m 20141024]# more test/__main__.py

    #!/usr/bin/env python2.7

    #-*- coding:utf8 -*

    from __future__ import absolute_import

    from .dep import Depclass

    adep = Depclass()

    dep.py内容如下:

    [root@typhoeus79 ice_test_m 20141024]# more test/dep.py

    class Depclass(object):

    def __init__(self):

    print "Init Depclass"

    直接运行__main__.py的时候出现错误:

    [root@typhoeus79 ice_test_m 20141024]# ./test/__main__.py

    Traceback (most recent call last):

    File "./test/__main__.py", line 6, in

    from .dep import Depclass

    ValueError: Attempted relative import in non-package

    这个错误之前也遇到过

    包含相对路径import 的python脚本不能直接运行,只能作为module被引用。

    如果想运行的话,需要这样操作:

    [root@typhoeus79 ice_test_m 20141024]# python2.7 -m test.__main__

    Init Depclass

    展开全文
  • 当我要在设置.py. 我收到一条错误消息!在实际上你可以安装应用程序。但我没有在python的站点包中这样。我已将代码复制到我的网站代码中。在我的网站根目录:/主干/网站/在下面的路径中,我安装了不同的应用程序。...

    我使用django-email-change-0.2.1只是为了更改auth_user-table中的emailaddress。当我要在设置.py. 我收到一条错误消息!在

    实际上你可以安装应用程序。但我没有在python的站点包中这样做。我已将代码复制到我的网站代码中。在

    我的网站根目录:

    /主干/网站/

    在下面的路径中,我安装了不同的应用程序。

    路径:/trunk/website/auth/user/emailchange

    /trunk/website/auth/user/registraiton

    /trunk/website/auth/user/profile

    最后两个应用程序运行良好。我只想为我的注册添加最后一个应用程序。要用应用程序“emailchange”更改用户的电子邮件地址,所以我要在用户更改emailaddress时发送一个验证链接。在

    在我的设置.py要运行/安装我添加的应用程序(型号):

    ^{pr2}$

    但是当我添加应用程序并调用我的网站的任何站点时,我收到了这个错误消息!在Traceback:

    File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response

    91. request.path_info)

    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve

    215. for pattern in self.url_patterns:

    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_url_patterns

    244. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

    File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in _get_urlconf_module

    239. self._urlconf_module = import_module(self.urlconf_name)

    File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py" in import_module

    35. __import__(name)

    File "/workspace/website/trunk/website/urls.py" in

    5. admin.autodiscover()

    File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/__init__.py" in autodiscover

    24. import_module('%s.admin' % app)

    File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py" in import_module

    35. __import__(name)

    File "/trunk/website/auth/user/emailchange/admin.py" in

    33. admin.site.register(cache.get_model('email_change', 'EmailChangeRequest'), EmailChangeRequestAdmin)

    File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in register

    76. for model in model_or_iterable:

    Exception Type: TypeError at /start/

    Exception Value: 'NoneType' object is not iterable

    有什么想法吗?我为什么要留言?在

    展开全文
  • 是什么?下面的代码从task.py和project.py导入。但这两个文件都没有任何与result()相关的内容,因此这里不包括它们。#!/usr/bin/env python3from task import Taskfrom project import Projectmain_me...

    在主回路的底部,我看到了这条线

    result = result()

    但我不知道它能做什么,我甚至不能用谷歌搜索它。

    这是什么?

    下面的代码从task.py和project.py导入。但这两个文件都没有任何与result()相关的内容,因此这里不包括它们。

    #!/usr/bin/env python3

    from task import Task

    from project import Project

    main_menu = {

    'title': 'MAIN MENU',

    'items': ['1. Create a project', '2. Load a project', '3. Quit'],

    'actions': {

    '3': exit,

    }

    }

    project_menu = {

    'title': 'PROJECT MENU',

    'items': ['1. Add a task', '2. Add task dependency', '3. Set task progress',

    '4. Show project', '5. Back to Main Menu'],

    'actions': {

    '5': main_menu,

    }

    }

    def select_menu(menu):

    while True:

    print()

    print(menu['title']) #MAIN MENU

    print('\n'.join(menu['items'])) #1. create project, 2. load project ..

    selection = input('Select > ')

    next_action = menu['actions'].get(selection)

    #print(selection, menu['actions'])

    if next_action:

    return next_action

    else:

    print('\nPlease select from the menu')

    def create_project():

    global cur_project

    global project_menu

    project_name = input('Enter the project name: ')

    cur_project = Project(project_name)

    return project_menu

    main_menu['actions']['1'] = create_project

    cur_menu = main_menu

    cur_project = None

    while True:

    result = select_menu(cur_menu)

    while callable(result):

    result = result()

    cur_menu = result

    展开全文
  • 有很多差异,不知道你想做什么,很难说明如何.但是,Python Packaging User Guide在解释一切相关方面得相当不错.这里有一些主要的区别..jar文件可以删除到应用程序中,或安装在CLASSPATH任何地方的类的编译集合.在...
  • 如果是做目标检测类的任务,经常需要用到cocoapi python setup.py build_ext --inplace build_ext指明python生成C/C++的扩展模块(build C/C++ extensions (compile/link to build directory)) --inplace指示 ...
  • if __name__ == "__main__":是什么意思每当Python解释器读取源文件时,它都会两件事:它设置了一些特殊变量,例如__name__,然后它执行文件中找到的所有代码。一 代码样例假设代码在一个叫做foo.py的文件中。print...
  • 这个问题如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用。为那些还不清楚它的人,Python的assert用来检查一个条件,如果它为真,就不任何事。如果...
  • 有两种思路去实现这种Timeout,其一将需要超时处理的代码块作为一个独立的子进程来处理,可将其另一个包含main函数的.py文件。然后使用子进程超时限制来控制代码块运行的时间。#!/usr/bin/pythonimport signal...
  • 假设工程根目录为 d:/Project/然后在 d:/Project/a/b/c/d/file.py 里使用 os.getcwd() 方法获取的d:/Project/a/b/c/d现在我想获取 d:/Project 怎么?------------------------------------分割线----------------...
  • 点击上方“蓝字”关注三丰每当Python解释器读取源文件时,它都会两件事:它设置了一些特殊变量,例如__name__,然后它执行文件中找到的所有代码。一 代码样例 假设代码在一个叫做foo.py的文件中。print(...
  • 当我们写完一个函数或者类后,想...那就加个判断语句吧,每个py文件有一个变量__name__,当我们print(__name__)可以发现这个变量等与"main",那么我们可以if语句:当__name__这个变量等于"main"时,这个测试代码才能运
  • 一、在一个大图上若干子图:fig.add_subplot(numrows, numcols, fignum) ####三个参数,分别代表子图的行数,列数,图索引号。可以写成:ax = fig.add_subplot(1, 1, 1)或者,ax = fig.add_subplot(111)A simple ...
  • == '小明'), 你自己眼中你你自己(__name__ == '__main__'), 你编程很好, 朋友调你去帮他写程序(import 小明, 这时你在朋友眼中: __name__ == '小明'),但你晚上也会打开xx网站, 一些自己的事情(直接运行小明.py,...
  • 我们在测试过程中,很多时候需要用到数据,例如我们要给excel中写入100万数据,首先大家想到的我用python的xlrd直接写就好了,但是我们在运行时会发现:File "C:\Users\yh\AppData\Local\Programs\Python\Python...
  • 文章目录一 代码样例二 运行代码2.1 作为主程序运行2.2 作为导入的模块运行2.3 执行foo.py文件中的代码为什么这样工作? 每当Python解释器读取源文件时,它都会两件事: 它设置了一些特殊变量,例如__name__,...
  • 原创:上海小胖 Python专栏如何提升自己的 python 能力呢?...写一个 ls 非常简单,你只需要会一点 linux 的基础知识,知道 ls 能做什么就好了。那今天小金就给大家码了一个哪哪能用的 ls.py ,没错,wi...
  • 想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__":那么这个语句到底是做什么用的呢?在解释之前,首先要声明的,不管你多么小白,你一定要知道的:1.python文件的后缀为.py;2..py...
  • if __name__ == '__main__'是什么意思?如何理解?看到一个很有用的解答 小明.py 朋友眼中你是小明(name == ‘小明’), 你自己眼中你是你自己(name == ‘main’), 你编程很好, 朋友调你去帮他写程序(import 小明, ...
  • 如何提升自己的 python 能力呢?...写一个 ls 非常简单,你只需要会一点 linux 的基础知识,知道 ls 能做什么就好了。那今天小金就给大家码了一个哪哪能用的 ls.py ,没错,windows 也可以哦~演示环境–...
  • About artists.py

    2020-12-26 06:14:14
    应该还是上面两个params我没理解到是什么意思而导致后面错误。 这个连接本地或者远程MySQL是要提前把sql.py中的表先建好吗?</p><p>该提问来源于开源项目:RitterHou/music-163</p></div>
  • 小明.py 朋友眼中你小明(__...你编程很好, 朋友调你去帮他写程序(import 小明, 这时你在朋友眼中: __name__ == '小明'),但你晚上也会打开xx网站, 一些自己的事情(直接运行小明.py, __name__ == '__main__') ...
  • 钢制办公家具行业有十来年了,经常会有朋友问我,文件柜和铁皮柜区别是什么?其实这两个词通过字面意思就可以分析出来,这两个都属于泛词,指不同领域的两个东西。文件柜按照百度百科的解释是“文件柜是放置文件、...
  • 在前面已经学习过JS的变量,你已经可以编写一些字符串,数字类型的小...我会让你发送代码给我,我一看之后,发现有很多变量,也没有看懂你原来想要的意思是做什么事,结果我的时间也有限的,总不能那么深入地分...
  • 针对4我这里没有MobileNetV1, MobileNetV2等等代码兼容,只有MobileNetV3可用 下载数据 本例以蛋糕和面包为例,原因数据量小 所有类别总大小561G,蛋糕和面包3.2G python3 open_images_downloader.py --...
  • 1.首先打包命令这里不赘述,网上清一色的教程,即pyinstaller -F -w -i ***.ico(图片路径) ***.py(文件路径),参数意思请自行百度,这里要注意: -F要大写,图标应该使用.ico格式,直接拿一张后缀为.jpg,.png等的...
  • 1.首先打包命令这里不赘述,网上清一色的教程,即pyinstaller -F -w -i ***.ico(图片路径) ***.py(文件路径),参数意思请自行百度,这里要注意: -F要大写,图标应该使用.ico格式,直接拿一张后缀为.jpg,.png等的...
  • __future__ 是什么

    2020-01-19 10:07:06
    __future__是py2的概念,对应py2,py3就是future,这为了在是py2的时候还能用到一些新版本的特性而成的包。 意思禁用py2的import特性改成用py3的import的特性,把下一个新版本的特性导入到当前版本,于是我们就...
  • 今日概要 爬虫简介 爬虫分类 robots协议 ...什么是爬虫 ...php被号称全世界最优美的语言(当然其自己号称的,就是王婆卖瓜的意思),但是php在实现爬虫中支持多线程和多进程方面的不好。 ...

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

做py是什么意思