[英]How do I make a python script executable?
如何使用我自己的命令行名稱(如“myscript”)運行 python 腳本,而不必在終端中執行“python myscript.py”?
在腳本頂部添加一個 shebang 行:
#!/usr/bin/env python
將腳本標記為可執行:
chmod +x myscript.py
將包含它的目錄添加到您的PATH
變量中。 (如果你想讓它堅持下去,你必須在你的主目錄中的.bashrc
或.bash_profile
中這樣做。)
export PATH=/path/to/script:$PATH
最好的跨平台方法是創建setup.py
,在其中定義一個入口點並使用pip
安裝。
假設您有myscript.py
的以下內容:
def run():
print('Hello world')
然后使用以下內容添加setup.py
:
from setuptools import setup
setup(
name='myscript',
version='0.0.1',
entry_points={
'console_scripts': [
'myscript=myscript:run'
]
}
)
入口點格式為terminal_command_name=python_script_name:main_method_name
最后使用以下命令安裝。
pip install -e /path/to/script/folder
-e
代表可編輯,這意味着您將能夠處理腳本並調用最新版本而無需重新安裝
之后,您可以從任何目錄運行myscript
。
我通常在腳本中這樣做:
#!/usr/bin/python
... code ...
在終端:
$: chmod 755 yourfile.py
$: ./yourfile.py
有些人可能感興趣的另一種相關解決方案。你也可以直接將 myscript.py 的內容嵌入到 Linux 上的 .bashrc 文件中(我認為應該也適用於 MacOS)
例如,我在 .bashrc 中定義了以下函數,用於將 Python 泡菜轉儲到終端,請注意${1}
是函數名稱后面的第一個參數:
depickle() {
python << EOPYTHON
import pickle
f = open('${1}', 'rb')
while True:
try:
print(pickle.load(f))
except EOFError:
break
EOPYTHON
}
有了這個(並且在重新加載 .bashrc 之后),我現在可以從我計算機上的任何終端或目錄運行depickle a.pickle
。
我想到的最簡單的方法是使用“pyinstaller”。
pip install pyinstaller
pyinstaller maincode.py
我希望這個解決方案可以幫助你。 GL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.