Raspberry Pi Python 从路径运行程序

问题描述 投票:0回答:2

我目前正在尝试让 Python 程序在我的 Raspberry Pi 上自动启动。问题是,程序正在读取配置文件,该文件与程序本身位于同一文件夹中。因此,当我从 IDE 运行该程序时,它工作正常。

如果我尝试从控制台(或 rc.local)运行它,它找不到配置文件。如果我 cd 进入该文件夹并尝试运行它,它会再次正常工作。

那么我怎样才能告诉Python或rc.local从文件夹内部运行呢?我试图用谷歌搜索解决方案,但找不到。

我不想用它的完整路径来寻址配置文件,因为我在我的PC上编程和调试,但在树莓派上使用程序,所以每次在设备之间切换时我都必须更改路径。

希望有人能帮助我,先谢谢了。

python raspberry-pi
2个回答
2
投票

我在这里看到了几种可能的方法:

  • 在树莓派上,您可以在运行python程序之前
    cd
    到正确的目录:
    cd <destination dir> && python your_program.py
    ,或者编写两行shell脚本到此。
  • 将可选的命令行参数传递给 python,其中包含配置文件的绝对路径。如果没有给出参数,则使用当前路径。
  • 尝试自动检测 python 程序运行的环境(例如使用
    gethostname()
    或设置环境变量如此处所示)。

0
投票
config_filename = os.path.join(os.path.dirname(sys.argv[0]), f'{config_filename})

将根据脚本所在位置为您提供配置的 FQN,适用于所有环境

© www.soinside.com 2019 - 2024. All rights reserved.