我试图了解在jupyter笔记本中导入如何工作。我当前的工作目录是“ home / username”。我有三个python模块。
这些模块的路径名如下所示。
"/home/username/module1.py"
"/home/username/folder/module2.py"
"/home/username/anaconda3/lib/python3.7/os.py"
(这是一个内置的python模块)Jupyter笔记本:
单元1:效果import module1
很好
单元格2:import module2
给出ModuleNotFoundError: No module named 'module2'
单元3:效果import os
很好
似乎可以毫无问题地导入工作目录中的模块。因此,module1.py
可以导入。不是软件包的其他目录中的模块不能直接导入。因此,module2.py
引发错误。但是,如果是这种情况,如何os.py
直接导入不是工作目录或同一目录中其他软件包中的?
这实际上是关于python本身如何工作的更多信息。
您应该能够导入module2
用from folder import module2
。您应该/home/username/folder
通过创建一个空白的初始化文件来声明为一个包/home/username/folder/__init__py
。我建议为软件包命名更独特的名称,例如potrus_folder
,这样就不会出现命名冲突。
解释一下:Python跟踪通过其路径可以使用哪些模块,通常在环境变量中进行设置。要查看哪些文件夹,它看起来在为模块,你可以做import sys
,然后print(sys.path)
。默认情况下/home/username/
,将以最高优先级包含您的工作目录()(因此,它应该位于第一个或最后一个sys.path
,我不记得了)。您可以使用添加自己的文件夹sys.path.append('/some/folder')
,尽管该文件夹不受欢迎,您应该将其确实添加到系统路径中,或者仅将其作为软件包保存在工作目录中。
包实际上只是已经添加的路径的子文件夹。如前所述,您可以使用from X import Y
语法来访问它们,或者如果您想更深入地访问它们from X.Z import Y
。记住__init__.py
文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句