在开发期间模拟目录存在

时间:2017-05-04 10:46:18

标签: python virtualenv

我正在开发一个基于Windows的python应用程序。但是,此应用程序将部署在Linux系统中。

此应用程序将在isStartDate处有一个配置文件。在Windows中无法使用此路径。

所以,我的问题是:

  • 在Python中,有没有办法模拟,只在开发过程中,存在某个目录和文件(例如/etc/myapp/config)?

谢谢。

2 个答案:

答案 0 :(得分:1)

而不是试图"模拟"一些不存在的路径,只是避免硬编码你的应用程序中的任何路径,你会没事的。

提示:环境变量和/或命令行参数是避免编码依赖于环境的值的规范方法。您可以从os.environ映射中读取环境变量。

这就是说,如果你的应用程序将部署在一些Linux发行版上,你应该在同一个发行版上真正测试它,以确保没有其他故障。它不是硬编码配置路径的正当理由(即使是原生linux应用程序也不依赖于env变量和/或命令行参数),但unix-之间存在很多其他差​​异 - 喜欢和窗户......

答案 1 :(得分:0)

而不是与/\争吵 - 只需使用os.path.join()。
(阅读os.path.join(path, *paths)中的https://docs.python.org/2/library/os.path.html)。

然后,在您的代码中 - 使用:

os.path.join('', 'etc', 'myapp', 'config')

它适用于C:\etc\myapp\config(在Windows上)和/etc/myapp/config(在* nix上)。