使用python模块

2024-04-26 22:01:50 发布

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

我绞尽脑汁重构一个用Python编写的项目。你知道吗

总体结构如下:

library:
   codepackage1
   codepackage2
   scripts

有一个安装脚本,它将脚本文件夹中的所有文件添加到bin。它还定义了程序包库,library.code包1以及library.code包2. 你知道吗

问题是需要使用另一个包的每个包都使用以下标识符:

import library.codepackage1

代码包中的两个模块以及脚本都使用此方法。你知道吗

这很好,但需要

python setup.py install

安装以后通过运行脚本和模块导入的所有包。你知道吗

我想分离脚本和模块,这样我就可以运行和测试我的更改,而不需要在系统中重新安装包。你知道吗

我该怎么办?你知道吗


Tags: 模块文件项目脚本文件夹bin定义library
2条回答

你查过Python了吗?如果包的路径位于odsys路径的顶部,那么python将从您的位置获取它。你知道吗

要在运行时检查它:

import sys
print '\n'.join(sys.path)

要强制使用给定位置的包而不是pip或任何默认位置的包,请执行以下操作:

# script_that_imports_library.py
import sys, os
THIS_DIR = os.path.dirname(os.path.abspath(__file__))

sys.path.insert(0, THIS_DIR)

#  or if it is e.g. one level above:
sys.path.insert(0, os.path.dirname(THIS_DIR))
import library

#  to check where it's imported from:
print 'the library comes from: %s' % library.__file__

经过一番寻找,我发现设置.py有一个开发选项,该选项创建到存储库的符号链接。你知道吗

这样您就可以使用顶级导入,它们将在开发和生产中得到解决。你知道吗

相关问题 更多 >