Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Python包中的文件导入目录_Python - Fatal编程技术网

将Python包中的文件导入目录

将Python包中的文件导入目录,python,Python,我正在构建一个Python包,遇到了这种情况。以下是项目结构: my-package/ examples/ example.py my-package/ __init__.py basic.py main.py 从上面的项目结构中,我们可以看到我的包是一个包,而示例只是一个目录。下面是在example.py中导入basic.py的最佳方法 从我的包中,import basic in

我正在构建一个Python包,遇到了这种情况。以下是项目结构:

my-package/
      examples/
           example.py
      my-package/
           __init__.py
           basic.py
           main.py
从上面的项目结构中,我们可以看到我的包是一个包,而示例只是一个目录。下面是在example.py中导入basic.py的最佳方法

从我的包中,import basic in example.py不会抛出任何名为….

的模块。您可以尝试在主目录下创建一个uu init_uuu.py,并告诉我结果吗

__init_uuuuuuuuy.py:

example.py:

最终的目录结构应如下所示:

my-package/
      __init__.py
      examples/
           example.py
      my-package/
           __init__.py
           basic.py
           main.py

你可以做的一件事是在我的包下添加一个_init__u; py.py文件,这样我的包将成为一个包目录,这样里面的模块就可以导入到文件中

为什么你不能将examples目录作为Python包?@GregEremeev我可以这样做,让事情正常进行,但我想知道另一种方式。你呢明白第一种方法更好吗?使用sys.path进行调整不太实际。包内的相对导入是简单易读的…并使示例成为包。这将解决所有导入问题,因为您的客户机代码导入外部包以供运行和使用,并且您不尝试在包代码内部启动一些脚本。
from .. import basic
my-package/
      __init__.py
      examples/
           example.py
      my-package/
           __init__.py
           basic.py
           main.py