使Python程序可以从任何地方运行

时间:2016-11-25 14:12:06

标签: python module python-import

我写了一个小蟒蛇program,我又在努力建立一个好的结构。

几天前,我读了一个blog和许多其他网站,建议反对from a import b导入,并建议使用始终import a.b“项目绝对”路径(从项目根目录到我要导入的内容)导入。那是一个背景。

我添加了__main__.py,以便我可以使用python -m <directory>运行我的程序,这是在数百个python导入问题之一的stackoverflow上的某人的另一个建议。它应该有助于使用相同的导入结构保持代码可运行和可测试,这在我的另一个项目中是一个问题。

现在我想要的是,在我的系统中的任何地方,我都可以运行python -m <dir of my code>,而不仅是RSTCitations目录中的一个目录。

如果没有:

,我怎样才能实现这一目标
  • python路径操作(这是一个肮脏的黑客)
  • 以某种方式更改我的导入并获得不推荐的导入结构
  • 为我的代码做其他黑暗魔法

我想坚持组织我的代码的最佳实践,但仍然希望它可以从我在终端的任何地方运行。

失败示例

当我从另一个与我的程序完全无关的目录中描述的程序运行时,我得到以下错误:

/home/user/development/anaconda3/bin/python: No module named /home/user/development/rst-citations-to-raw-latex/RSTCitations

路径是正确的。这正是代码的所在。

1 个答案:

答案 0 :(得分:0)

你可以:

如果您不需要其他用户“导入”您的库但只是将其用作独立程序,您也可以将一个符号链接/脚本放到您的程序中,使其可以从您PATH中的目录运行