我目前正在开发一个Python软件包,可以使用setup.py
与setuptools
一起安装。该软件包使用svn
作为源代码控制,并且我正在Windows上进行开发。对于某些文件,svn
自动将文件权限设置为写保护(由于svn
锁定机制)。例如,该软件包包含一个将与该软件包一起安装的.png文件,并且svn
始终将.png文件的权限设置为写保护。
不幸的是,python -m pip install
在删除临时构建目录时显示错误,因为它无法删除写保护的文件(拒绝访问:'example.png')。我可以手动从源文件中删除写保护,然后安装该软件包,该软件包将成功。但是,svn
在更新存储库后会自动重置权限。
是否可以配置我的setup.py
脚本,使其仅复制文件内容并在目标计算机上使用一些默认权限?
我的setup.py
看起来像这样。复制文件的相关部分是package_data
。
import setuptools
setuptools.setup(
name="my_package",
version="1.0.0",
author="Me",
author_email="example@example.com",
description="Awesome package",
classifiers=[
"Programming Language :: Python :: 3",
"Operating System :: OS Independent"
],
packages=setuptools.find_packages(),
package_data={
"my_package": ["ui/*.png", "ui/*.ui"]
},
python_requires=">=3.5",
install_requires=["pyqt5==5.9"]
)
编辑:复制文件后更改文件权限解决了该问题。正如hoefling的评论所暗示的那样,此答案显示了如何执行此操作:https://stackoverflow.com/a/25761434/6095394