對於開源專案,通常需要除錯來掌握細節。
除錯的方法有很多,pdb,IDE除錯等等。
對於從命令列直接啟動的專案,首先需要找到專案的入口,以open-interpreter為例
其中,--os
模式需要在命令列中輸入interpreter --os
。這裡的interpreter
實際上是一個可執行檔案interpreter.exe
。
以這種方式執行似乎看不出專案的入口在哪裡。
當安裝一個 Python 包時,特別是那些帶有命令列介面(CLI)的包,安裝過程會建立一個與包名相同的可執行檔案。
這個可執行檔案實際上是一個啟動器,它用於呼叫 Python 直譯器並執行特定的 Python 指令碼。
接下來,我們需要找到啟動器呼叫了哪個Python指令碼。
入口點(Python指令碼)通常定義在setup.py
或者pyproject.toml
中。
例項:
# setup.py
from setuptools import setup
setup(
name='interpreter',
version='0.1',
packages=['interpreter'],
entry_points={
'console_scripts': [
'interpreter=interpreter:main', #入口點
],
},
)
[tool.poetry.scripts]
interpreter = 'interpreter:main'
開啟open-interpreter的專案,可以找到pyproject.toml
中關於入口點的定義:
[tool.poetry.scripts]
interpreter = "interpreter.terminal_interface.start_terminal_interface:main"
i = "interpreter.terminal_interface.start_terminal_interface:main"