精华内容
下载资源
问答
  • 一、pycharm当中,新建package有两种类型文件夹、python文件夹) ①python package包是一个带有特殊文件 __init__.py 的目录 __init__.py 文件定义了包的属性和方法。 其实它可以什么也不定义;可以只是一...

    一、pycharm当中,新建package有两种类型(文件夹、python文件夹)

     

    ①python package包是一个带有特殊文件 __init__.py 的目录

    __init__.py 文件定义了包的属性和方法

    其实它可以什么也不定义;可以只是一个空文件,但是必须存在。

    如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

    ②Dictionary在pycharm中就是一个文件夹

    放置资源文件,对应于在进行JavaWeb开发时用于放置css/js文件的目录,或者说在进行物体识别时,用来存储背景图像的文件夹。该文件夹其中并不包含__ init.py_ 文件

     

    展开全文
  • 在开发稍大规模python程序时,就不能将所有*.py源文件放到一个文件夹里管理了。 特别是当一个py文件调用另一个py文件中定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。 同时在使用...

    在开发稍大规模python程序时,就不能将所有*.py源文件放到一个文件夹里管理了。
    特别是当一个py文件调用另一个py文件中定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。
    同时在使用pyinstaller打包为exe时,也要注意参数的使用,此处有坑,搞了一天才弄好,哎

    函数print_name和类custom_class在source.py中定义:

    '''
    自定义定义函数和类
    '''
    def print_name(name):
        print('welcome '+ name)
    
    class custom_class():
        def __init__(self, name):
            self.name = name
    
        def show_name(self):
            print('hello '+ self.name)
            
    

    在ui.py中使用上面的的函数和类,可以分为三种典型情况:

    1. source.py 和 ui.py 在同一个文件夹内
    2. source.py 在ui.py所在目录的下级子目录中
    3. source.py 在ui.py分别在两个平级文件夹内

    Case1:source.py 和 ui.py 在同一个文件夹内

    这种情况最简单,也是学习python过程中最常用的目录结构,文件结构如下,项目名称为PROJECT1,新建同名PROJECT1文件夹

    • PROJECT1
      • source.py
      • ui.py

    这种情况可以直接import source,ui.py完整代码如下:

    '''
    ui.py和source.py文件在同一文件夹
    '''
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    在路径 PROJECT1 下打开控制台,运行结果为:

    \PROJECT1> python .\ui.py
    welcome Lily
    hello Mike
    

    在路径 PROJECT1 下打开控制台,运行pyinstaller命令打包:

    ...\PROJECT1> pyinstaller ui.py
    143 INFO: PyInstaller: 3.5
    143 INFO: Python: 3.7.0
    144 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    2757 INFO: Building COLLECT COLLECT-00.toc
    3021 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    

    运行后完成打包,默认在\PROJECT1\dist\ui 路径下可以找到 ui.exe 文件,运行该文件的结果为:

    \PROJECT1\dist\ui> ./ui
    welcome Lily
    hello Mike
    

    实现预期目的

    Case2:source.py 在ui.py所在目录的下级子目录中

    这种情况也很常见,项目名称为PROJECT2,新建同名PROJECT2文件夹,而source.py 在CODE子目录下

    • PROJECT2
      • ui.py
      • CODE
        • source.py

    不修改ui.py,直接运行会报错,找不到 module ‘source’

    \PROJECT2> python .\ui.py                                         Traceback (most recent call last):
      File ".\ui.py", line 5, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    这种情况需要添加路径,修改后的ui.py代码如下:

    '''
    source.py文件在CODE文件夹内
    '''
    import sys
    sys.path.append('./CODE')
    
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    程序正常运行

    \PROJECT2> python .\ui.py
    welcome Lily
    hello Mike
    

    添加相对路径

    此处有坑:我平时用vscode开发,“打开文件夹”打开的是 “PROJECT2” 文件夹,即控制台定位在 PROJECT2的路径下,添加路径命令sys.path.append(’./CODE’) 中的路径也要以“PROJECT2” 为基准,而不用考虑 ui.py 和 source.py文件的相对关系。
    如退到“PROJECT2” 的上级路径TEST中运行,则仍然会报错:

    \TEST> python .\PROJECT2\ui.py                                         Traceback (most recent call last):
      File ".\PROJECT2\ui.py", line 7, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    pylint 提示:Unable to import 'source’pylint(import-error)

    因为自学的python,想规范自己的代码,所以安装了pylint用于检查代码,发现在第7行pylint会报错,内容:Unable to import 'source’pylint(import-error)
    在这里插入图片描述可以更改pylint的配置文件关闭这个检查,我是参考:
    https://blog.csdn.net/zj010206/article/details/92806700
    中的写法做的。

    简单总结,找到“pylint.exe”所在路径,我的在“C:\Users\xxx\AppData\Roaming\Python\Python37\Scripts”,打开控制台,运行 pylint --generate-rcfile > .pylintrc,就可以生成.pylintrc文件,之后按链接中方法修改.pylintrc文件

    PS C:\Users\xxx\AppData\Roaming\Python\Python37\Scripts> pylint --generate-rcfile > .pylintrc
    

    将修改后的.pylintrc文件放到PROJECT2路径下,就不会再报Unable to import 'source’pylint(import-error) 的提示了。

    待解决

    但其它提示也被关闭了,比如命名方式,缺少class的描述等。不算是完美的解决方案,后面还有研究一下pylint的设置。

    pyinstaller打包使用 -p 参数

    因为可以正常运行程序,所以按case1中给出的命令直接打包,并显示成功:

    PS ...\PROJECT2> pyinstaller ./ui.py                                    
    218 INFO: PyInstaller: 3.5
    219 INFO: Python: 3.7.0
    224 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    42134 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    

    把控制台定位到\PROJECT2\dist\ui, 运行ui.exe文件时控制台报错:

    ...\PROJECT2\dist\ui> .\ui.exe
    Traceback (most recent call last):
      File "ui.py", line 7, in <module>
    ModuleNotFoundError: No module named 'source'
    [22424] Failed to execute script ui
    

    此处有坑: 开始以为找不到source 和 pylint 的报错有关,修改.pylintrc后,在代码编辑页面上没有提示后,再生成ui.exe 文件,运行后仍然报错。

    此处真正需要的是为pyinstaller命令使用 -p参数,在打包时将CODE路径添加进去。
    pyinstaller -p .\CODE\ ui.py

    PS ...\PROJECT2> pyinstaller -p .\CODE\ ui.py
    140 INFO: PyInstaller: 3.5
    (省略打包过程中输出的信息)
    48261 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    PS ...\PROJECT2> cd .\dist\ui\                                          PS ...\PROJECT2\dist\ui> .\ui.exe
    welcome Lily
    hello Mike
    

    Case2 小结

    • 在编码时,添加source.py所在路径,注意是以控制台路径为基准
      import sys
      sys.path.append(’./CODE’)
    • 在用pyinstaller打包时,使用 -p参数,添加 CODE文件夹

    Case3:source.py 在ui.py分别在两个平级文件夹内

    文件结构如下,项目名称为PROJECT3,新建同名PROJECT3文件夹

    • PROJECT3
      • CODE
        • source.py
      • UI
        • ui.py

    使用vscode打开PROJECT3,因为在ui.py中增加的路径是以控制台所在路径为基准,所以和Case2 的代码一样:

    '''
    source.py文件在CODE文件夹内
    '''
    import sys
    sys.path.append('./CODE')
    
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    正常运行ui.py

    ...\PROJECT3> python .\UI\ui.py
    welcome Lily
    hello Mike
    

    如果将控制台定位到 UI文件夹,运行则会报错,再次验证了之前的发现

    ...\PROJECT3\UI> python .\ui.py
    Traceback (most recent call last):
      File ".\ui.py", line 7, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    pyinstaller 使用 -p参数,添加CODE路径

    和Case2一样,也需要使用-p参数添加CODE所在的路径,注意命令中间的空格,.\CODE\ 是-p的参数,之后的 .\UI\ui.py 是需要打包文件所在位置,具体命令如下:

    \PROJECT3> pyinstaller -p .\CODE\ .\UI\ui.py                      148 INFO: PyInstaller: 3.5
    148 INFO: Python: 3.7.0
    151 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    33594 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    PS ...\PROJECT3> .\dist\ui\ui.exe
    welcome Lily
    hello Mike
    

    最后

    不同文件路径下的py文件引用,和pylint是否报错无关,和CODE文件夹内是否有 init.py 文件无关。
    开发时只要以控制台作为基准路径,在py文件中添加引用路径,且运行py文件时也在相同的路径下就可以。
    pyinstaller打包要用-p参数,手动添加代码所在的路径

    展开全文
  • 在需要导入的文件的文件夹中放入__init__.py文件就可以解决,这个文件里面可以什么都不...__init__.py可以为空,也可以定义包的属性和方法,但其必须存在,其它程序才能从这个目录中导入相应的模块或函数。例如在da...

    在需要导入的文件的文件夹中放入__init__.py文件就可以解决,这个文件里面可以什么都不写。

    关于__init__.py

    可以看到,几乎每个文件夹下都有__init__.py,一个目录如果包含了__init__.py 文件,那么它就变成了一个包(package)。__init__.py可以为空,也可以定义包的属性和方法,但其必须存在,其它程序才能从这个目录中导入相应的模块或函数。例如在data/文件夹下有__init__.py,则在main.py 中就可以

    from data.dataset import DogCat
    

    而如果在data/__init__.py中写入

    from .dataset import DogCat
    

    则在main.py中就可以直接写为:

    from data import DogCat
    

    或者

    import data;
    dataset = data.DogCat
    

    相比于from data.dataset import DogCat更加便捷。

    展开全文
  • Python3.x 导入import包 ...假设我正在编辑的是a.ipynb文件,若想导入同一文件夹下B.ipynb中定义的函数,首先将B.ipynb保存为该目录下(和a一致)的.py文件,然后import即可。 pycharm中的导入过程 ...

    Python3.x 导入import包

    jupyter 中import其他文件夹的函数

    假设我正在编辑的是a.ipynb文件,若想导入同一文件夹下B.ipynb中定义的函数,首先将B.ipynb保存为该目录下(和a一致)的.py文件,然后import即可。

    pycharm中的导入过程

    https://blog.csdn.net/weixin_38256474/article/details/81228492

    展开全文
  • python文件夹中__init__.py的用处

    千次阅读 2018-08-06 18:30:44
    init_.py的作用是把一个文件夹变成了一个python模块,python的每个模块所对应的文件包中都有一个init.py存在。 所以在导入子定义的模块时,将所有的自定义模块放在一个文件夹下面,就可以直接导入。...
  • Python中module文件夹里__init__.py的功能

    千次阅读 2019-02-24 17:19:30
    如果一个文件夹里面有这个py文件,那么它就可以被视为一个包,通过import引入,如果没有,则无法引入。 如果我们自己写一些函数,想要当做一个python 的模块通过import导入的话,有两种方式。 一种是写成 xxx.py...
  • 嗨 各位高手,最近遇到了一个疑问: 想要在一个py文件中引用另一个py文件中定义的值,具体如图:请问有什么办法么? ![图片说明](https://img-ask.csdn.net/upload/201904/15/1555314521_968028.png) ![图片说明]...
  • a要import b import a.b在有构建程序的帮助下可以 在命令行中无法使用 如果要这样调用,需要在调用目录下创建一个 __init__.py 文件,即
  • 原因是: pycharm不会将当前文件目录自动加入自己的sourse_path。  解决方案:右键make_...Sources Root将当前工作的文件夹加入source_path就OK了 转载于:https://www.cnblogs.com/Bella2017/p/10859392.html...
  • 将自己py文件所在的文件夹路径写入到一个txt文件中,将txt的后缀改为path,然后放入anaconda\lib\site-packages中,就可以在新的py中对其进行调用,如图所示。
  • 下面给大家介绍一种简单的方法来引用自己定义的.py模块 配置环境 pycharm+Windows10+python3.6 方法一 包外导入 pycharm的每个目录都有一个’init.py’文件,只要在这个文件中引入的都可以被外界直接引用: 举个例子...
  • python项目中不同文件夹py源文件之间如何相互调用,下面将以实际例子给出解决方案:Python import中相对路径的问题
  • 默认情况下,在 web2py 中,表定义在模型中完成。 模型在每个请求中执行,所以如果你定义了很多表,即使你不需要它们也会被加载。 在这个小应用程序中,您可以看到如何在类中将模型定义到模块文件夹中,并且只加载或...
  • web2py 的页面模块,它为您提供了任何类型的 CMS 的良好起点。 它具有带有延迟(URL 友好)名称的页面树。 页面可以由项目组成。 当前页面项目:markmin 文本、html 文本、纯文本、图像、imageslider、相册、常见...
  • -方式一,处于同一个文件夹下, brother.py引用brother.py的函数 (存在问题,如果引用模块,除了引用函数之外,还会引用其他的数据,) brother1.py import brother2 print("兄弟关系哈hahhah") brother2.new...
  • 实现复制文件夹下面所有特定文件(如.py、.exe、.html…) 为了实现这个功能,首先我们要导入这两个模块:os、os.path import os import os.path as ph 需要一条你想复制的文件夹的绝对路径:在代码里我用 path1代...
  • python模块导入,网上介绍的资料很多,方法也众说纷纭。根据自己的实践,感觉这个方法最...包的定义就是包含__init__.py文件夹。如果没有__init__.py,那么就是普通的文件夹。 2. 导入package。 在python 安装目
  • python实现文件夹同步

    千次阅读 2016-12-02 13:49:54
    定义SynDirTool类,用于同步两个文件夹的内容,从/usr/local/a文件夹到/usr/local/b文件夹,执行方法:   python SynDirTool.py /usr/local/a /usr/local/b  SynDirTool.py文件内容:     #!/usr/bin/...
  • 总会自动地生成一个空的__init__.py文件,因为是python新手,所以很不了解这个空文件的作用是什么,因为没有什么东西可写在这里,所以我直接把这个文件给删掉了,结果我的包图标自动变为文件夹图标了,这是怎么回事...
  • fliecopy.py

    2019-08-14 16:03:48
    #遍历文件夹名字列表 filemane为文件夹名称 字符串类型 for filemane in dirs_mes: #判断文件夹名称是否在目标文件夹中 if filemane in dirs_host: print('存在同名文件'+filemane) else : try: shutil....
  • __init__.py

    2018-08-07 18:06:15
    init.py的主要作用是: Python中package的标识,不能删除,__init__.py文件夹变为一个Python模块. 定义all用来模糊导入 编写Python代码
  • python学习笔记9.2-文件及文件夹操作

    万次阅读 2017-10-22 22:46:03
    本文主要介绍python对文件以及文件夹的操作,主要涉及到文件的创建、读取、文件内容的修改、删除,文件夹的索引、目录的判断等等。此节内容非常重要,是以后编程的基础。python文件夹和文件的操作主要借助于os和...
  • 在现实生活中,我们可能遇到需要对文件夹里的各种文档进行处理。 假设存在一种需求:文件夹里的文件太多,我们需要抽取出某个时间段以前的文件。 今天来实现下这个需求。 之前写过一些关于文件整理的,今天只是补充...
  • webpy框架

    千次阅读 2017-06-22 11:07:15
    python网络编程学习笔记(10):webpy框架 转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  django和webpy都是python的web开发框架。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调...
  • 【vn.py】量化策略开发

    千次阅读 2019-08-06 15:27:10
    一个完整的量化流程至少需要包括策略开发、历史回测与实盘交易三个步骤,下面就以vn.py为例,先整理一下vn.py中如何进行量化策略的开发。 开发环境 在vn.py的官方教程中使用的IDE是VS Code,这里的IDE没有什么特殊...
  • 数据按文件夹组织,每个类对应一个文件夹。大多数其他的PyTorch教程和示例都希望你先按照训练集和验证集来组织文件夹,然后在训练集和验证集中再按照类别进行组织。但我认为这非常麻烦,必须从每个类别中选择一定...
  • readFile.py

    2021-01-29 10:24:26
    python读取文件夹文件
  • (vscode建议使用项目文件夹做当前工作目录,这样__init__.py省略也不影响包路径导入)   查看python官方的文档,上面提到这样一段话:__init__.py文件是必需的,这样才能使Python将目录当作包;这样做的目的是...
  • 在部署scrapy得过程中,因为爬虫项目较大,为了便于维护,采用了自定义文件夹分类新建类及函数得方法 结果在使用scrapyd-deploy的... 如果要自己选择导入哪些文件,可时用__all__属性定义导入文件夹中的哪些文件。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,926
精华内容 19,970
关键字:

py定义文件夹类型