3
我必须将一个Python项目与通过命令行界面使用的脚本一起部署。为了帮助用户,我还包含一个Bash完成文件,该文件被放入/etc/bash_completion.d
。不幸的是,作为一个普通用户在安装的时候,因为如果不以root身份运行,如何跳过安装数据文件?
error: could not delete '/etc/bash_completion.d/completion': Permission denied
与pip install -e .
工程安装项目,因为书写问题被忽略与pip install project.tar.gz
安装源代码发行失败。
现在,有没有办法告诉发布它不应该试图写入数据文件时,它不是作为根执行?
我用设置的'了'data_files'关键字参数() '指定完成脚本应该被安装到'/ etc'中。看起来它是真正的唯一选项,如果它以root身份执行或不以root身份执行,则会检查'setup.py'。 – matthias 2013-03-22 10:01:44
我使用类似的方法,但检查'os.geteuid()'是否为0。因此,如果'setup.py'没有以root身份运行,我不需要安装两次。 – matthias 2013-03-22 10:47:22
很高兴你找到了解决方案。上面实际上并没有写入这些文件,它只是在没有写权限的情况下将'data_files'设置为一个空列表(所以当'setup'试图写入时你不会得到这个异常) – danodonovan 2013-03-22 10:55:58