pathlib Path 解析包的安装路径目录而不是源代码目录
pathlib Path resolves installed path directory of package instead of source code directory
我已经使用 setup.py 打包了我的项目,项目文件夹结构如下所示。
api-automation
api
packagename
__init__.py
user.py
payloads
a.json
b.json
tests
conftest.py
setup.cfg
setup.py
README.rst
我在下面的文件夹中创建了名为 "myenv_1" 的虚拟环境,
/Users/basavarajlamani/Documents/environments/
我已经在这个虚拟环境中安装了上面的 repo。
我在 Whosebug 和互联网上尝试了很多,但没有找到答案。
user.py 文件的代码
from pathlib import Path
current_dir = str(Path(__file__).resolve().parent)
def func():
print("current_dir", current_dir)
代码 conftest.py
from packagename.user import func
func()
如果我直接运行user.py文件(python3user.py),我会得到正确的目录路径如下,
current_dir /Users/basavarajlamani/Documents/repos/api-automation/api/packagename
但是如果我 运行 conftest.py 文件(python3 conftest.py),我得到的安装路径如下,我不想要但我想得到目录路径就像我直接 运行 user.py 文件,
current_dir
/Users/basavarajlamani/Documents/environments/myenv_1/lib/python3.7/site-packages/packagename
请帮忙,我该如何解决这个问题。
我怀疑您在引导开发环境时没有使用正确的选项。
尝试:
- 清理你的开发 virtualenv 或删除它并创建一个新的。
cd the/root/of/your/source/tree
pip install -e .
重要的一点是 -e
选项。阅读 pip
手册。
我已经使用 setup.py 打包了我的项目,项目文件夹结构如下所示。
api-automation
api
packagename
__init__.py
user.py
payloads
a.json
b.json
tests
conftest.py
setup.cfg
setup.py
README.rst
我在下面的文件夹中创建了名为 "myenv_1" 的虚拟环境, /Users/basavarajlamani/Documents/environments/ 我已经在这个虚拟环境中安装了上面的 repo。
我在 Whosebug 和互联网上尝试了很多,但没有找到答案。
user.py 文件的代码
from pathlib import Path
current_dir = str(Path(__file__).resolve().parent)
def func():
print("current_dir", current_dir)
代码 conftest.py
from packagename.user import func
func()
如果我直接运行user.py文件(python3user.py),我会得到正确的目录路径如下,
current_dir /Users/basavarajlamani/Documents/repos/api-automation/api/packagename
但是如果我 运行 conftest.py 文件(python3 conftest.py),我得到的安装路径如下,我不想要但我想得到目录路径就像我直接 运行 user.py 文件,
current_dir
/Users/basavarajlamani/Documents/environments/myenv_1/lib/python3.7/site-packages/packagename
请帮忙,我该如何解决这个问题。
我怀疑您在引导开发环境时没有使用正确的选项。
尝试:
- 清理你的开发 virtualenv 或删除它并创建一个新的。
cd the/root/of/your/source/tree
pip install -e .
重要的一点是 -e
选项。阅读 pip
手册。