2024-04-26 01:09:57 发布
网友
我有以下文件夹结构
我已将所有需要的库移到lib/文件夹中。你知道吗
在我的module/__init__.py中,我想我会:
module/__init__.py
import sys sys.path.append('../lib/') import my_dependency
当我需要使用这个依赖项时,我将它称为
my_module.my_dependency
这是Python导入的错误用法吗?你知道吗
注释:依赖项由一些不通过PIP/EasyI安装和第C++语言编写的第三方库组成。你知道吗
如果您使用的库是第三方模块,特别是流行的模块,那么用这样的名称命名它们会很快变得不一致。最终得到的代码有时被引用为bar,有时被引用为foo.bar。维护这样一个代码库将不值得从这样的前缀中获得任何收益。你知道吗
bar
foo.bar
如果您将第三方代码保存在自己的存储库中,请考虑将其替换为requirements.txt文件,该文件可以提供给easy_install和pip等实用程序。这两个工具都支持安装到主目录的 user开关(不涉及系统内容)。你知道吗
requirements.txt
easy_install
pip
user
pip install -r requirements.txt user
sys.path.append('../lib/')假设当前工作目录是脚本的目录,可能是这样,也可能不是这样。你知道吗
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。你知道吗
lib
如果您使用的库是第三方模块,特别是流行的模块,那么用这样的名称命名它们会很快变得不一致。最终得到的代码有时被引用为
bar
,有时被引用为foo.bar
。维护这样一个代码库将不值得从这样的前缀中获得任何收益。你知道吗如果您将第三方代码保存在自己的存储库中,请考虑将其替换为
requirements.txt
文件,该文件可以提供给easy_install
和pip
等实用程序。这两个工具都支持安装到主目录的user
开关(不涉及系统内容)。你知道吗sys.path.append('../lib/')
假设当前工作目录是脚本的目录,可能是这样,也可能不是这样。你知道吗不依赖于工作目录的版本是:
上面用普通语言编写的代码获取脚本的完整路径,去掉最后两个组件(脚本目录和脚本文件名)并附加
lib
。你知道吗相关问题 更多 >
编程相关推荐