Python导入使用u init_uu.py而不是添加到搜索路径

2024-10-17 06:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的文件结构。在

/working dir
    __init__.py
    main.py
    /packages
        __init__.py
        snafu.py
        /subfolder1
            __init__.py
            foo.py
        /subfolder2
            __init__.py
            bar.py
        /many_more
            ...

{{cd2>将尝试导入 但是foo.py将尝试import subfolder2,这不会起作用,因为找不到{}。在

要深入每个文件并将每个import语句更改为from packages.a_subfolder.whatever import something,这将是太多的工作

我已经通过在sys.path中添加/packages来实现它,但是我不希望这样做。有没有办法用__init__.py文件来解决这个问题?在

import *添加到/packages\uu init_uu.py文件中可以吗?在

多个/文件夹是我下载的第三方软件包,因为我在不同的计算机上工作,而不是在我工作的每台计算机上安装这些软件包,而是使用文件夹中的一个。 例如:要在你的程序中使用googledrive,你需要大约10个不同的软件包才能让它工作。在


Tags: 文件pyimport文件夹fooinitmainpackages
2条回答

在您的例子中,您似乎希望导入父目录中的模块。 在要将模块导入父目录的文件中包含以下代码应该可以工作:

import sys
sys.path.append('.')
sys.path.append('..')

看来唯一有效的方法就是

import sys, os
packagepath = os.getcwd() + '/packages'
sys.path.append(packagepath)

到/packages__init__.py文件,并使用 from packages.subfolder1.foo import something

相关问题 更多 >