如何将其他文件放在包安装目录中?

时间:2016-02-15 17:31:26

标签: python setup.py

我正在为python包编写一个安装后脚本。为此我需要将一些文件复制到包的安装目录中。有没有办法在/期间获得位置:

$ python setup.py install

一般的解决方案是执行以下操作:

# post installation script
import os
import PACKAGE_NAME
path = os.path.dirname(PACKAGE_NAME.__file__)
# copy files to path

但是我做不到。我的包导入取决于复制到其目录的文件。我可以做的一件事是:

# another messier post installation approach
import os
# add location of dependencies to system path to allow package import
os.environ['PATH'] += CURRENT_LOCATION_OF_FILES_TO_BE_COPIED
import PACKAGE_NAME
path = os.path.dirname(PACKAGE_NAME.__file__)
# copy files to path

运行setup.py后是否有更好的方法在包的安装位置复制文件而不需要包导入?

1 个答案:

答案 0 :(得分:0)

也许你可以用包导入。你的第一种方法不起作用的原因是因为Python寻找模块/包的方式。它会按顺序搜索$i = 0; foreach ($arr as $value) { $i++; echo '<br>'; foreach ($value as $val) { echo $val.','; } } echo $i; ,因此如果您反转sys.path,也可以执行此操作:

sys.path

它可能有用,但它有点像hacky。