pyImporterror从父文件夹运行子文件夹python脚本

时间:2018-08-30 09:46:20

标签: python

我正在尝试从directory文件夹运行:
$ python subdirectoryTwo/file.py命令(Python 2.7)。

文件夹结构:

-directory  

    -subdirectoryOne  
        __init.py__
        config.py
    -subdirectoryTwo  
        __init.py__  
        file.py 

我的file.py有: from subdirectoryOne.config import config

但是我遇到错误:

  

file.pyImportError:没有名为subdirectoryOne.config`的模块

(我想它仍然会在directory文件夹中出现)

2 个答案:

答案 0 :(得分:0)

您几乎不需要更换任何薄片。

(公共)landpacks-MacBook-Pro:qx frank $树

.
├── __init__.py
├── __init__.pyc
├── a
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── config.py
│   └── config.pyc
└── b
    ├── __init__.py
    └── test.py

使用您的__init__.pysubdirectoryOne创建一个subdirectoryTwo,就像这里我使用ab一样。然后在file.py的开头添加一些代码。我在这里将其命名为test.py。代码是:

import sys

sys.path.append("..")

from project.a.config import myconf


print(myconf)

您可以看到我是通过project.a.config而不是a.config导入的。因为您在项目下运行代码。

更新

我的a/config.py简单易用:

(public)landpacks-MacBook-Pro:qx frank$ cat a/config.py
myconf='127.0.0.1'

答案 1 :(得分:0)

解决方案之一(不是最佳解决方案)是将PYTHONPATH设置为您的directory
$ export PYTHONPATH='/absolute/path/to/directory'