Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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代码- main.py basics.py component1 file1.py file2.py component2 file1.py file2.py 我希望目录component1和component2中的代码使用basics.py中的代码。做这件事最像蟒蛇的方式是什么 谢谢 位于组件1、组件2等内部文件的顶部 from ..basics import class1, function2, # or a wildcard like *

我有目录结构的python代码-

main.py
basics.py
component1
  file1.py
  file2.py
component2
  file1.py
  file2.py
我希望目录component1和component2中的代码使用basics.py中的代码。做这件事最像蟒蛇的方式是什么


谢谢

位于组件1、组件2等内部文件的顶部

from ..basics import class1, function2,    # or a wildcard like *

application
作为python项目的根目录,在application文件夹中创建一个空的
\uuuuu init\uuuuuuuuuuy.py
文件。然后在目标
filename.py
(例如,
component1/file1.py
)文件中,进行如下更改以获取
func\u name
的定义:

import sys
sys.path.insert(0, r'/from/root/directory/')

from application.basic import func_name ## use '*' wildcard to import all the functions in basic.py file.

相对进口令人讨厌。我希望看到包含
basics.py
的文件夹添加到PYTHONPATH,并获得
\uuuu init\uuuuuuu.py
您可以选择使用相对导入或从代码更新sys.path中添加basics.py的位置。我更喜欢创建另一个名为lib或utils的目录,将basics.py移到那里,添加init.py,将PYTHONPATH更新到父目录,然后导入。从lib.basics import foo、component1.file1导入栏等中导入的内容看起来干净且一致。