导入模块到测试目录
Import module to test directory
我想从我的测试文件夹导入业务代码。
我使用 python setup.py install
安装了我的代码,它将代码复制到 anaconda 站点包文件夹中。但我想在我的开发中测试我的代码。目录,因为我不想在任何小的更改后不断安装我的代码来测试它。
我正在使用 Anaconda 和 Spyder IDE。
这是我的目录结构:
dev
└── myproject
├── setup.py
├── myproject
│ ├── __init__.py
│ └── myproject.py
└── test
├── __init__.py
└── test_importprojecthere.py
我是从这里拿来的:Running unittest with typical test directory structure
目前,我只是尝试导入一个函数。
# dev: projectfile.py
def hello():
print('Hello world!')
这是我调用它的地方。
# dev: test_importprojecthere.py
from myproject.projectfile import hello # Use installed package.
hello()
更多信息:
- Python relative paths for unit tests
- Import a module from a relative path不理想!
- relative path not working even with __init__.py
当您创建 包时,您不想将它们安装到您的site-packages。
不使用
python setup.py install
改为使用
python setup.py develop
或...
pip install -e .
这些命令使用 symlinks 安装您的设置。它不是创建副本,而是链接到您的实际项目。因此,当您修改它时,它会立即在所有地方被修改。
因此,您将不必 update/install 或对 运行 单元测试做任何事情。
-- "但是现在,每次我修改我的包时,所有使用它的东西都可能会崩溃。我不想破坏我的生产代码!"
别担心!这就是我们使用虚拟环境的原因。当你创建一个包时,确保你创建了一个虚拟环境,你可以命名,例如“myproject_dev”。
在开发中。环境。使用 python setup.py develop
以便您可以在其上进行开发。
在产品中。环境。使用python setup.py install
,让你使用一个副本,即不会突然改变。您不会修改它,因为在生产环境中,您使用的是您的包,而不是在其上进行开发!使事情简单安全。
我想从我的测试文件夹导入业务代码。
我使用 python setup.py install
安装了我的代码,它将代码复制到 anaconda 站点包文件夹中。但我想在我的开发中测试我的代码。目录,因为我不想在任何小的更改后不断安装我的代码来测试它。
我正在使用 Anaconda 和 Spyder IDE。
这是我的目录结构:
dev
└── myproject
├── setup.py
├── myproject
│ ├── __init__.py
│ └── myproject.py
└── test
├── __init__.py
└── test_importprojecthere.py
我是从这里拿来的:Running unittest with typical test directory structure
目前,我只是尝试导入一个函数。
# dev: projectfile.py
def hello():
print('Hello world!')
这是我调用它的地方。
# dev: test_importprojecthere.py
from myproject.projectfile import hello # Use installed package.
hello()
更多信息:
- Python relative paths for unit tests
- Import a module from a relative path不理想!
- relative path not working even with __init__.py
当您创建 包时,您不想将它们安装到您的site-packages。
不使用
python setup.py install
改为使用
python setup.py develop
或...pip install -e .
这些命令使用 symlinks 安装您的设置。它不是创建副本,而是链接到您的实际项目。因此,当您修改它时,它会立即在所有地方被修改。
因此,您将不必 update/install 或对 运行 单元测试做任何事情。
-- "但是现在,每次我修改我的包时,所有使用它的东西都可能会崩溃。我不想破坏我的生产代码!"
别担心!这就是我们使用虚拟环境的原因。当你创建一个包时,确保你创建了一个虚拟环境,你可以命名,例如“myproject_dev”。
在开发中。环境。使用 python setup.py develop
以便您可以在其上进行开发。
在产品中。环境。使用python setup.py install
,让你使用一个副本,即不会突然改变。您不会修改它,因为在生产环境中,您使用的是您的包,而不是在其上进行开发!使事情简单安全。