Python 将模块导入测试目录

Python 将模块导入测试目录,python,python-3.x,module,anaconda,Python,Python 3.x,Module,Anaconda,我想从测试文件夹导入业务代码 我使用python setup.py install安装了我的代码,它将代码复制到anaconda站点包文件夹中。但是我想在我的dev.目录中测试我的代码,因为我不想在任何小的更改之后不断地安装我的代码来测试它 我正在使用Anaconda和Spyder IDE 以下是我的目录结构: dev └── myproject ├── setup.py ├── myproject │ ├── __init__.py │ └── mypr

我想从测试文件夹导入业务代码

我使用
python setup.py install
安装了我的代码,它将代码复制到anaconda站点包文件夹中。但是我想在我的dev.目录中测试我的代码,因为我不想在任何小的更改之后不断地安装我的代码来测试它

我正在使用Anaconda和Spyder IDE

以下是我的目录结构:

dev
└── myproject
    ├── setup.py
    ├── myproject
    │   ├── __init__.py
    │   └── myproject.py
    └── test
        ├── __init__.py
        └── test_importprojecthere.py
我从这里取的:

现在,我只是尝试导入一个函数

# dev: projectfile.py
def hello():
    print('Hello world!')
这就是我所说的

# dev: test_importprojecthere.py
from myproject.projectfile import hello # Use installed package.
hello()
更多信息:

  • 不理想

当您创建软件包时,您不希望在站点软件包中安装它们

不要使用

  • python setup.py安装
相反,使用

  • python setup.py develope
  • pip安装-e.
这些命令使用安装程序。它不会创建副本,而是链接到实际项目。因此,当你修改它时,它会立即被修改到任何地方

正因为如此,您不必更新/安装或执行任何操作来运行单元测试

--“但是现在,每次我修改我的包时,使用它的所有东西都可能损坏。我不想破坏我的生产代码!”

别担心!这就是我们使用虚拟环境的原因。当您创建一个包时,请确保您创建了一个虚拟环境,您可以通过示例将其命名为“myproject_dev”

在开发环境中。使用
python setup.py develope
,以便在其上进行开发

在产品环境中。使用
python setup.py安装
,以便使用不会突然更改的副本。您不会修改它,因为在prod中,您使用您的包,而不是在其上开发!让事情变得简单和安全