MacOS下如何无需完整路径,从任意位置运行Python项目?
实现任意位置运行
test_project的两种方法 方法一:Python打包(推荐,规范持久)
这是Python官方推荐的项目分发方式,安装后系统会自动生成可执行命令,无需手动维护PATH和软链接,适合长期使用。
- 在
TestProject根目录创建pyproject.toml文件,写入以下内容:
[project] name = "test_project" version = "0.1.0" authors = [{ name = "Your Name", email = "your@email.com" }] [project.scripts] test_project = "test_project.__main__:main"
注:如果你的
__main__.py里没有封装成main()函数,而是直接写执行代码,把冒号后改成test_project.__main__:__main__即可;如果入口是其他函数,替换成对应函数名。
- 在
TestProject根目录下,用pip以编辑模式安装项目(修改代码后无需重新安装):
pip install -e .
完成后就能在任意目录直接运行test_project --arg1 --arg2。
方法二:手动配置(快速临时方案)
如果不想用打包工具,可通过手动配置权限、软链接和环境变量快速实现:
- 给
__main__.py添加可执行权限:
chmod +x /path/to/TestProject/test_project/__main__.py
(把/path/to/TestProject换成你项目的实际绝对路径)
- 创建软链接到系统PATH包含的目录(MacOS默认
/usr/local/bin在PATH中):
ln -s /path/to/TestProject/test_project/__main__.py /usr/local/bin/test_project
- 让Python能找到
test_project模块:
打开shell配置文件(MacOS默认是~/.zshrc,用bash则是~/.bash_profile),添加一行:
export PYTHONPATH="/path/to/TestProject:$PYTHONPATH"
保存后执行source ~/.zshrc(或source ~/.bash_profile)让配置生效。
现在你就能在任意目录(包括独立的experiments目录)运行test_project --arg1 --arg2了。
内容的提问来源于stack exchange,提问作者Dan Jackson
相关产品推荐
相关产品推荐

