Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
从PYTHONPATH下的嵌套目录访问文件_Python_Python 2.7_Import_Importerror_Pythonpath - Fatal编程技术网

从PYTHONPATH下的嵌套目录访问文件

从PYTHONPATH下的嵌套目录访问文件,python,python-2.7,import,importerror,pythonpath,Python,Python 2.7,Import,Importerror,Pythonpath,我检查了这么多问题,但没有帮助我解决问题。 我有一个文件夹结构: |--test/foo.py |--library/ #This is set as my PYTHONPATH |--|--file1.py |--|--folder1 |--|--|--util.py 我正在尝试从foo.py访问util.py 注意:此时,我可以从测试文件夹访问库下的所有文件。但是,每当我尝试访问library/folder1/util.py时,它都会给出一个错误,提示“ImportError:没有名为

我检查了这么多问题,但没有帮助我解决问题。 我有一个文件夹结构:

|--test/foo.py
|--library/   #This is set as my PYTHONPATH
|--|--file1.py
|--|--folder1
|--|--|--util.py
我正在尝试从
foo.py
访问
util.py

注意:此时,我可以从测试文件夹访问库下的所有文件。但是,每当我尝试访问library/folder1/util.py时,它都会给出一个错误,提示“ImportError:没有名为util的模块”

到目前为止我已经试过了:
福比

这种方法很有效,但我不能使用“library/file1.py”。 有没有更干净的方法来避免这种情况


注意:这些只是文件夹结构(我正在维护以区分文件),而不是模块(因此我相信我不能使用
\uuu init\uuu.py
和类似import
utils.functionname

如果您想强制执行它,请从顶级目录运行它(在您的情况下,包含
test/
library/
的未命名目录):


这将把您的顶级目录和每个子目录添加到python路径中。不要再胡说八道了。

为什么不想让库成为一个包呢?我认为,如果它不应该是一个包,那么
folder1
应该与
library
并列。否则,如果它确实是一个库,那么
library
>folder1
应该有一个
\uuuu init\uuuuuuuuuuuuuupy
允许您将
库添加到PYTHONPATH,然后简单地导入:
库.folder1.util.functionname
@OozeMeister-我尝试了您解释的方式。因此,现在我在库folder1下有init.py。但我仍然无法使用我想要的函数。
 import os
 import sys
 import file1
 sys.path.insert(0, '/folder1/')
 import util
 util.function_name
 #do something 
export PYTHONPATH=$(myarray=($(find "$(pwd -P)" -type d)) \
  && printf '%s\n' "$(IFS=:; printf '%s' "${myarray[*]}")")