pypi打包的二进制文件和脚本文件的安装位置错误

问题描述

我的setup.py文件看起来像

$ cat setup.py 
from setuptools import setup
 
setup(
     name='user1-hello-world',version='0.20',scripts=['user1-hello-world'],data_files=[('/usr/sbin/',['user1-bin2'])]
)

我有1个python脚本(user1-hello-world)和1个小精灵二进制文件(user1-bin2)

$ ls
user1-hello-world user1-bin2 setup.py

使用以下麻线构建和上传

 python3 setup.py sdist bdist_wheel
 python3 -m twine upload --repository testpypi dist/*

文件上传到test.pypi.org之后。通过pip安装显示主目录下的文件

/home/user/.local/bin/user1-hello-world
/home/user1/.local/lib/python3.8/site-packages/user1_hello_world-0.20.dist-info/*
/home/user1/.local/lib/python3.8/site-packages/usr/sbin/user1-bin2

我希望像user1-bin2一样在/usr/sbin下安装/usr/sbin/user1-bin2。如何实现呢?谢谢你的指点。

解决方法

首先set the install location,方法是将$ HOME / .pip / pip.conf编辑为

[global]
target=usr/sbin

或仅使用--target usr/sbin

然后,因为usr / sbin文件夹需要root权限,所以请不要忘记添加sudo(在Linux上):

sudo pip install your-package