【问题标题】:How can I put a python program with multiple files in /usr/local/bin?如何在 /usr/local/bin 中放置一个包含多个文件的 python 程序?
【发布时间】:2015-06-14 01:25:59
【问题描述】:

我知道,如果我的程序只是一个 python 脚本文件,我可以用 shebang 启动它,然后把它放在 /usr/local/bin 中,这样我就可以随时从命令提示符调用它。

但是,如果我的程序是多个文件,但我只希望一个可以从命令行调用呢?例如,如果我有 my_program.py 和 dependency.py,而 my_program 需要依赖,但我不希望依赖是可调用的?

据我了解,如果我将两者都转储到 /usr/local/bin 中,那么调用它们中的任何一个名称都会尝试执行它们...我只希望 my_program 可见,但它也需要在与依赖模块相同的目录。

我知道我可以将它们复制/粘贴到一个文件中,但感觉不对...

【问题讨论】:

  • 有关说明,请参阅blog.ablepear.com/2012/10/…
  • 这些依赖项是导入还是作为子进程运行?如果是导入的,您只需要读取权限。

标签: python shell command-line


【解决方案1】:
  1. 将python文件放在一个文件夹中,然后将该文件夹放入安装目录(可能在/usr/local/foldername)。

  2. 在 script/s 中使用 chdir 将目录更改为包含文件夹的文件(可能是 os.path.dirname(os.path.realpath(sys.argv[0])))以从那里导入依赖项,或使用绝对路径。

  3. 现在做一个可执行文件的符号链接,放到/usr/local/bin中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2023-03-05
    • 2018-01-15
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多