Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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,我有以下文件夹结构: root folder1 file1.py file2.py folder2 file3.py 如果我想在file3.py中导入,导入file1.py会是什么样子? 我尝试了不同的变体:来自folder1.file1 import*,来自.folder1.file1 import*,来自folder1 import file1,以及类似的变体,不幸的是没有成功。我是否需要在某个地方创建一个\uuuu init\uuuu

我有以下文件夹结构:

root
   folder1
       file1.py
       file2.py
   folder2
       file3.py
如果我想在
file3.py
中导入,导入
file1.py
会是什么样子?
我尝试了不同的变体:
来自folder1.file1 import*
来自.folder1.file1 import*
来自folder1 import file1
,以及类似的变体,不幸的是没有成功。我是否需要在某个地方创建一个
\uuuu init\uuuuuuuuuuuuuuuupy
文件

\uuuu init\uuuuu.py
文件是Python将目录视为包含包所必需的,它们只是一个空文件

那你就可以了

from folder1 import file1

如果一个包的
\uuuuu init\uuuuuuuuuuupy
代码定义了一个名为
\uuuuu all\uuuuuuuuuuuuuu
的列表,则当遇到来自包导入*的
时,它被视为应该导入的模块名称列表

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
应该出现在
根目录中,
文件夹

\uuuu init\uuuuu.py
文件是Python将目录视为包含包所必需的,它们只是一个空文件

那你就可以了

from folder1 import file1

如果一个包的
\uuuu init\uuuuuuuupy
代码定义了一个名为
\uuuu all\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucode>的列表,则当遇到
来自包导入*\uuuu init\uuuuuu.py
中的
\uuuuuu all\uuuuuu
变量中,以便导出它们。如果您想提供一个类或变量,您可以这样添加它:
\uuuuu all\uuuuuu=['foo','bar']
我确信我写了一条评论。。。哦,好吧。我仍然收到一条错误消息<代码>导入错误:没有名为folder1的模块
。文件夹肯定存在,并且里面有一个
\uuuu init\uuuuu.py
文件。将
根目录的完整路径添加到sys.path,如sys.path.append(根目录的完整路径)导入之前没有其他解决方法吗?这意味着如果不再次设置sys.path值,我就无法将我的实现移植到任何其他系统@cherrun:您可以在包含根目录路径的env中定义PYTHONPATH。顺便说一句,如果您希望使用
from X import*
机制,您需要将它们添加到
\uuuuuuu all\uuuuuuu
中的
\uuu init\uuuuuuuuuuu.py
变量中,以便导出它们。如果您想提供一个类或变量,您可以这样添加它:
\uuuuu all\uuuuuu=['foo','bar']
我确信我写了一条评论。。。哦,好吧。我仍然收到一条错误消息<代码>导入错误:没有名为folder1的模块
。文件夹肯定存在,并且里面有一个
\uuuu init\uuuuu.py
文件。将
根目录的完整路径添加到sys.path,如sys.path.append(根目录的完整路径)导入之前没有其他解决方法吗?这意味着如果不再次设置sys.path值,我就无法将我的实现移植到任何其他系统@cherrun:您可以在包含根目录路径的env中定义PYTHONPATH