我正在為我正在制作的 Python 應用程式撰寫安裝程式,并且需要具有不同檔案位置的路徑。這些是我到目前為止所擁有的,所以想知道這些是否正確,我是否應該更改其中的任何一個(尤其是 Linux/macOS 的)
我有一條路徑:
- 實際的二進制
- 對于組態檔
- 自述檔案
- 開始選單,如果用戶想要添加快捷方式(這將
.desktop在 Linux/macOS 上創建檔案,在 Windows 上創建快捷方式) - 桌面,如果用戶想要添加快捷方式
誰能告訴我是否應該對這些進行更改以使它們在所有設備上都可以使用等
視窗
binary = '%ProgramFiles%'
configs = '%AppData%'
README = '%ProgramFiles%'
start menu = '%AppData%\Microsoft\Windows\Start Menu'
desktop = os.path.expanduser('~\Desktop')
Linux
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')
提前致謝
編輯:我已經為用戶添加了更改路徑的選項,所以它不一定是完美的,但我想要最好的“正常”路徑
uj5u.com熱心網友回復:
我的建議是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 或管理員權限時,homeor方案很方便。user
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504256.html
