[英]Cross-Platform Installer paths
我正在為我正在制作的 Python 應用程序編寫安裝程序,並且需要具有不同文件位置的路徑。 這些是我到目前為止所擁有的,所以想知道這些是否正確,我是否應該更改其中的任何一個(尤其是 Linux/macOS 的)
我有一條路徑:
.desktop
文件,在 Windows 上創建快捷方式)誰能告訴我是否應該對這些進行更改以使它們在所有設備上都可以使用等
binary = '%ProgramFiles%'
configs = '%AppData%'
README = '%ProgramFiles%'
start menu = '%AppData%\Microsoft\Windows\Start Menu'
desktop = os.path.expanduser('~\Desktop')
binary = '/usr/local/bin'
config = os.path.expanduser('~/.config')
README = '/usr/local/share/doc/packages'
start menu = os.path.expanduser('~/.local/share/applications')
desktop = os.path.expanduser('~/Desktop')
binary = '/usr/local/bin'
config = os.path.expanduser('~/.config')
README = '/usr/local/share/doc/packages'
start menu = os.path.expanduser('~/.local/share/applications')
desktop = os.path.expanduser('~/Desktop')
提前致謝
編輯:我已經為用戶添加了更改路徑的選項,所以它不一定是完美的,但我想要最好的“正常”路徑
我的建議是盡可能使用sysconfig
。 例如在 POSIX 系統上get_paths()
返回:
In [5]: sysconfig.get_paths()
Out[5]:
{'stdlib': '/usr/local/lib/python3.9',
'platstdlib': '/usr/local/lib/python3.9',
'purelib': '/usr/local/lib/python3.9/site-packages',
'platlib': '/usr/local/lib/python3.9/site-packages',
'include': '/usr/local/include/python3.9',
'platinclude': '/usr/local/include/python3.9',
'scripts': '/usr/local/bin',
'data': '/usr/local'}
請注意,sysconfig 支持不同的方案:
In [6]: sysconfig.get_scheme_names()
Out[6]:
('nt',
'nt_user',
'osx_framework_user',
'posix_home',
'posix_prefix',
'posix_user')
當安裝程序沒有 root 或管理員權限時, home
或user
方案很方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.