我有一个安装在共享开发系统上的软件包。我希望软件包带来的脚本仅供我的用户(或其他任何需要它的人)使用。要安装包,我使用包目录中的以下命令:
python setup.py install --home=~
到目前为止,这完成了我希望它做的所有事情。它安装我的模块并将脚本放在 /home/$(whoami)/bin 目录中。
然而,它所做的一件事是替换我在脚本文件中的 shebang。所以,不是 nice friendly #!/usr/bin/env python
,而是将其替换为#!/usr/bin/python
现在,由于我的包只为当前用户安装,它无法看到包中的模块进行导入。
因此,由于我的脚本从包中的模块导入函数,因此从命令行运行它们会导致导入错误。
运行交互式 python 解释器允许我使用与我要运行的脚本中的导入行完全相同的文本来导入文件。
有谁知道我可以解决这个问题的方法?
PS 不,我无法控制此设置中的 Python 版本。在可预见的未来,它是 2.3.4。