Python 2.7 __当前工作目录中的init__u;.py

Python 2.7 __当前工作目录中的init__u;.py,python-2.7,Python 2.7,我有一个目录结构 log_dedupe ├── dedupe │   ├── __init__.py │   ├── __init__.pyc │   ├── sha_dedupe.py │   ├── sha_dedupe.pyc │   └── test_sha_dedupe.pyc ├── globals.py ├── globals.pyc ├── __init__.py ├── __init__.pyc ├── log_dedupe_main.py ├── log_dedupe_mai

我有一个目录结构

log_dedupe
├── dedupe
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── sha_dedupe.py
│   ├── sha_dedupe.pyc
│   └── test_sha_dedupe.pyc
├── globals.py
├── globals.pyc
├── __init__.py
├── __init__.pyc
├── log_dedupe_main.py
├── log_dedupe_main.pyc
log\u deplicate\u main.py中

from log_dedupe import parse_arguments
导致

ImportError: No module named log_dedupe
如果我添加了一个
setup.py
并安装了一个软件包,我就不会再收到这个错误了。但是如果我在init.py中更改了某些内容,我就必须重新安装

注意我也考虑过在我的文件中从
\uuuu init\uuuu
导入,但我不确定这是否是个好主意

在浪费了一个小时的时间后,我发现自己在想,是否有办法做到这一点

  • 重写当前工作目录以使用目录名而不是“”
  • 如果文件已更改,则自动安装python包

  • 更改到目录
    log\u dedupe/
    中,并调用
    log\u dedupe\u main.py
    ,如下所示:

    python -m log_dedupe.log_dedupe_main`
    
    python -m log_dedupe
    
    或者更好的方法是,将
    log\u deplicate\u main.py
    重命名为
    \uuu main\uuuu.py
    ,并按如下方式调用它:

    python -m log_dedupe.log_dedupe_main`
    
    python -m log_dedupe