pathlib路径解析软件包的安装路径目录,而不是源代码目录

时间:2019-06-05 13:38:16

标签: python python-3.x python-3.7 pathlib

我已经使用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”的虚拟环境, /用户/ basavarajlamani /文档/环境/ 并且我已经在此虚拟环境中安装了上述仓库。

我在stackoverflow和Internet上做了很多尝试,但是没有找到答案。

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文件(python3 user.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

请帮助我如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

我怀疑您在引导开发环境时没有使用正确的选项。

尝试:

  • 清理您的开发virtualenv或将其删除并创建一个新的环境。
  • cd the/root/of/your/source/tree
  • pip install -e .

重点是-e选项。阅读pip手册。