当前位置: 首页 > 知识库问答 >
问题:

Path lib Path解析包的安装路径目录而不是源代码目录

明宜年
2023-03-14

我已经使用setup.py打包了我的项目,项目文件夹结构如下所示。

  api-automation
  api
    packagename
       __init__.py
       user.py
       payloads
         a.html" target="_blank">json
         b.json    
  tests
    conftest.py
  setup.cfg
  setup.py
  README.rst

我已经在下面的文件夹中创建了名为“myenv_1”的虚拟环境,/Users/basavarajlamani/Documents/environments/并且我已经在这个虚拟环境中安装了上面的repo。

我在堆栈溢出和互联网上尝试了很多,但没有找到答案。

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()

如果我运行用户。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个答案

张瀚漠
2023-03-14

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

尝试:

  • 清理您的开发虚拟环境或删除它并创建一个新的。
  • cd/root/of/my/Source/Tree
  • pip安装-e.

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

 类似资料:
  • 我的程序从不是项目根目录的位置读入文档。文档包含一个相对路径。当程序应用该路径时,它确实从项目的根目录开始。如何使其应用来自文档原始位置的路径? 以下是细节。有点长,但很简单。 我在Eclipse中有一个Java项目,位于 该程序运行一个XSL转换,该转换以Schematron模式作为输入,并产生一个新的XSLT样式表作为输出 它包含这一行,还有几条类似的: 如果从模式的位置开始,并应用该相对路径

  • Electron 的源代码主要依据 Chromium 的拆分约定被拆成了许多部分。 为了更好地理解源代码,您可能需要了解一下 Chromium 的多进程架构​ 源代码结构 1 Electron 2 ├── atom/ - C ++源代码. 3 | ├── app/ - 系统入口代码 4 | ├── browser/ - 前端包含了主窗口、UI 和其他所有与主进程有关的东西,它会告诉渲染进程如何管理

  • 本文向大家介绍PHP解析目录路径的3个函数总结,包括了PHP解析目录路径的3个函数总结的使用技巧和注意事项,需要的朋友参考一下 要描述一个文件的位置,可以使用决对路径和相对路径。绝对路径是从根开始一级一级地进入各个子目录,最后指定该文件名或目录名。而相对目录是从当前目录进入某目录,最后指定该文件名或目录名。在系统的每个目录下都有两个特殊的目录“.”和“..”,分别指示当前目录和当前目录的父目录(上

  • 我想从现有目录中创建一个树,以便它显示其中的所有子文件夹和文件。我使用以下代码: <代码>文件文件=新文件(路径);TreeModel model=新文件TreeModel(文件);JTree tree=新JTree(模型)

  • 6.1 目录与路径 由前一章Linux的文件权限与目录配置中通过FHS了解了Linux的“树状目录”概念之后, 接下来就得要实际的来搞定一些基本的路径问题了!这些目录的问题当中,最重要的莫过于前一章也谈过的“绝对路径”与“相对路径”的意义啦! 绝对/相对路径的写法并不相同,要特别注意。此外,当你下达指令时,该指令是通过什么功能来取得的? 这与PATH这个变量有关呢!下面就让我们来谈谈啰! 6.1.

  • 给定一个类似的路径,我希望删除所有“当前目录”指示符(即句点)和“父目录”指示符(即..),给出。 我可以使用,但这也可以解析符号链接,这是我不想要的。 有简单的方法吗?也就是说,比编写一个标记器并自己处理它更简单。 如果你能告诉我什么是正确的名字,就会得到奖励。和'..'都是在这种背景下。