提供一个源文件外的文件夹,在那里可以找到我的所有外部库

2024-04-26 01:09:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件夹结构

  • 我的\u模块

我已将所有需要的库移到lib/文件夹中。你知道吗

在我的module/__init__.py中,我想我会:

import sys
sys.path.append('../lib/')
import my_dependency

当我需要使用这个依赖项时,我将它称为

my_module.my_dependency

这是Python导入的错误用法吗?你知道吗

注释:依赖项由一些不通过PIP/EasyI安装和第C++语言编写的第三方库组成。你知道吗


Tags: 模块pathpyimport文件夹initmylib
2条回答

如果您使用的库是第三方模块,特别是流行的模块,那么用这样的名称命名它们会很快变得不一致。最终得到的代码有时被引用为bar,有时被引用为foo.bar。维护这样一个代码库将不值得从这样的前缀中获得任何收益。你知道吗

如果您将第三方代码保存在自己的存储库中,请考虑将其替换为requirements.txt文件,该文件可以提供给easy_installpip等实用程序。这两个工具都支持安装到主目录的 user开关(不涉及系统内容)。你知道吗

pip install -r requirements.txt  user

sys.path.append('../lib/')假设当前工作目录是脚本的目录,可能是这样,也可能不是这样。你知道吗

不依赖于工作目录的版本是:

import sys, os
sys.path.append(os.path.join(os.path.split(os.path.split(os.path.abspath(sys.argv[0]))[0])[0], "lib"))
import my_dependency

上面用普通语言编写的代码获取脚本的完整路径,去掉最后两个组件(脚本目录和脚本文件名)并附加lib。你知道吗

相关问题 更多 >