Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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_Import_Module_Package - Fatal编程技术网

如何创建可以从python导入的命名空间

如何创建可以从python导入的命名空间,python,import,module,package,Python,Import,Module,Package,我已经编写了一个python包,名为sugarplot,其中包含一个\uuu init\uuuu.py: from sugarplot.test import testing 我在sugarplot/test/目录中有一个python模块testing.py。假设这个文件有一个我想导入的函数some\u function。我想做的(但似乎不起作用)是在python解释器/或其他脚本中执行以下操作: from sugarplot.testing import some_function 但是,

我已经编写了一个python包,名为
sugarplot
,其中包含一个
\uuu init\uuuu.py

from sugarplot.test import testing
我在
sugarplot/test/
目录中有一个python模块
testing.py
。假设这个文件有一个我想导入的函数
some\u function
。我想做的(但似乎不起作用)是在python解释器/或其他脚本中执行以下操作:

from sugarplot.testing import some_function
但是,我得到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sugarplot.testing'
收益率:

<module 'sugarplot.test.testing' from '/Users/jordan.e/Google Drive/GTD/PhD/Software/sugarplot/sugarplot/test/testing.py'>
我知道我可能遗漏了一些关于导入工作原理的基本知识,但我不知道它是什么,我也没有找到答案

编辑: 以下工作(遵循目录结构):

我如何在不依赖于目录结构的情况下强制执行我真正想要的工作?我认为导入
testing
会在
sugarplot
模块中创建一个名为
testing
的名称空间,它对目录结构一无所知

检查模块时,如下所示:

import sugarplot
print(sugarplot.testing)
<module 'pkg.test.testing' from '/Users/jordan.e/Google Drive/GTD/PhD/Software/sandbox/pkg/test/testing.py'>


它不是
sugarplot.testing
,而是
sugarplot.test.testing
。我知道,我是说我希望它是sugarplot.testing。如何制作sugarplot.testing?一个简单的方法是不将它嵌套在包的
test
目录中。
from sugarplot.test.testing import some_func
<module 'pkg.test.testing' from '/Users/jordan.e/Google Drive/GTD/PhD/Software/sandbox/pkg/test/testing.py'>