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

导入python包时跳过目录的级别

导入python包时跳过目录的级别,python,python-2.7,Python,Python 2.7,我的目录结构如下: Folder_in_PYTHONPATH/ ├── Package1 │   ├── __init__.py │   ├── src │   │   ├── Class1.py │   │   ├── Class2.py │   │   └── __init__.py │   └── test │   └── testfile.py ├── Package2 │   ├── __init__.py │   ├── src │   │   ├── Class1.py │

我的目录结构如下:

Folder_in_PYTHONPATH/
├── Package1
│   ├── __init__.py
│   ├── src
│   │   ├── Class1.py
│   │   ├── Class2.py
│   │   └── __init__.py
│   └── test
│       └── testfile.py
├── Package2
│   ├── __init__.py
│   ├── src
│   │   ├── Class1.py
│   │   ├── Class2.py
│   │   └── __init__.py
│   └── test
│       ├── test1.py
│       └── test2.py
.
.
.
从该文件夹导入内容时,我需要始终键入

import Package1.src.Class1
有没有办法设置我的
\uuuu init\uuuu.py
,这样我就可以键入

import Package1.Class1

相反?

将它们添加到您的包的
\uuuu init\uuuu.py
文件中,使它们看起来像:

from src import Class1
from src import Class2
看看


我建议将*.py文件放在其包的顶层文件夹中,以获得所需的
import-package_1.Class1
行为。单元测试可以保存在它们自己的文件夹中以将它们分开。

这允许我使用来自Package1 import Class1的
,但不允许我导入Package1。Class1
有什么原因不能将
类*
文件放在顶层吗?没有其他原因,因为有很多包,这将需要大量的工作目录,区分类和单元测试似乎有组织意义。您可以将单元测试保存在自己的文件夹中;可能它们不是api的一部分。好吧,我已经使用了目录重组解决方案,尽管我仍然有点好奇是否还有其他方法。如果你把它写成另一个答案,我会接受的