繁体   English   中英

在引用python安装时,如何获取python setup.py安装以使用相对路径?

[英]How does one get python setup.py install to use relative paths when referring to python installation?

我想使用python setup.py install将Spyder安装到/AppDir/usr (即,这是我为python setup.py install指定的--prefix ),即使我安装了Spyder,我也希望它能正常工作移动/AppDir目录。 目前不是这种情况,就像当我cd到移动的/AppDir/usr/bin (不再位于/AppDir/usr/bin而是位于~/GitHub/mine/packaging/AppImages/recipes/spyder/AppDir/usr/bin ,当我移动它时)目录并从其中运行./spyder ,我得到了错误:

zsh: ./spyder: bad interpreter: /AppDir/usr/bin/python: no such file or directory

为了使此Spyder安装可移植,我相信我需要/AppDir/usr已安装Spyder的文件来调用相对文件路径而不是绝对文件路径(因此,不是调用解释器/AppDir/usr/bin/python而是打电话说./python )。 有没有办法做到这一点?

编辑:我计划从此AppDir创建一个AppImage(交叉分发包格式),因此符号链接将不起作用! 由于该AppImage打算由其他人下载并由其他本地解决方案使用(例如,通过修改我的本地系统(例如~/.zshrc文件)使其运行),将无法正常工作!

您从./spydershebang获得结果的错误。 Shebangs必须使用绝对路径 ,因此在使用解释器移动文件夹时,它不会自动更改。 实际上, 文件系统层次结构标准背后的想法是使逻辑文件位置保持相同且可预测,而不管它们的物理位置如何(特别是对于Python,例如.pyc文件在其中具有绝对路径,因此可能必须重新生成一次安装已移动)。

最简单的方法是手动搜索并替换使用该特定Python安装的所有脚本中的shebang。 参见例如linux-如何/是否可以以可移植的方式安装python? -Unix和Linux堆栈交换,以及为其他选项创建 Linux 的可移植Python(本地安装)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM