【问题标题】:Proper way to run a PyCharm project运行 PyCharm 项目的正确方法
【发布时间】:2016-01-18 22:32:11
【问题描述】:

这是一个看似简单的问题,但事实证明它比预期的要难。

我在pycharm中创建了一个项目,布局如下

bin
    main
helpers
    userhelper
models
    user
    session
tests
    userTest

在我的 main 中,我运行调用所有内容的代码,这就像 pycharm 中的魅力。现在我想在服务器上运行它并使用 cron 启动它。如何在保留所有模块引用的同时从 cron 开始?

我想我需要将项目的根目录添加到 python 路径中。为此,我添加了以下 bash 脚本来调用我的项目:

PYTHONPATH="${PYTHONPATH}:/home/steven/projectX"
export PYTHONPATH
python bin/main.py

但这似乎没有任何作用,在这个项目中定期运行 bin/main.py 并拥有我所有的模块和诸如 'ConfigParser.RawConfigParser().read(os.path .abspath("../configuration.cfg"))' 相对于我的项目?

编辑:我不想修复我的导入或调试我的代码,我在 pycharm 中有一个大型项目,它运行一个模拟,我想在服务器上调用它并在我的开发设置中进行维护。问题是我如何以与 pycharm 相同的方式运行它?

【问题讨论】:

  • “似乎什么也没做”是什么意思?你是怎么运行这个的?从哪里?发生了什么?你检查了什么?
  • invoke脚本在项目根目录下,报错是缺少模块,看来我的pythonpath还是不对
  • 从 cron 运行它还是在命令行运行它?请使用相关信息更新您的问题。

标签: python cron


【解决方案1】:

听起来您对制作可分发的 Python 包很感兴趣。你应该通读教程here。最终,您将要编写一个 setup.py(当然您可以将其称为其他名称,但这就像重命名 self —— 为什么要这样做?)它将配置您的项目。现在有一个忠告,因为我看到很多人在这里走错了路。你永远不想直接修改你的 PYTHONPATH。这可能是启动和工作的最快解决方案,但它会导致持久的问题。

【讨论】:

  • 谢谢,这是我正在寻找的方向,但我不完全确定这是否是为开发和生产提供可维护项目的最佳方式。
  • 您能详细说明一下吗?我认为这就是制作可分发包的意义所在。
  • 嗯,事情是这意味着只有一个实例,它不应该在其他任何地方运行,只在那个服务器上。创建一个对本项目目标没有贡献的可分发包时会产生一些开销。我再看看。
【解决方案2】:

所以我在这里找到了处理 mu 问题的方法。最好的选择显然是创建一个可分发的 python 包并使用它。但是,由于我正在开发一个具有大量功能和预期结果的模拟,因此需要进行大量调整,并且每次我想运行项目时都必须创建一个包,这有点超出了我的项目范围。 我想要做的是能够以类似于我在使用 PyCharm 的开发机器上执行此操作的方式运行文件。我解决这个问题的方法是将我的 main.py 放在我的项目的根目录中,并拥有与执行文件相关的所有引用。这意味着我的 userhelper 会按如下方式查找数据存储区:

path = os.path.join(os.path.dirname(os.path.dirname(__file__)),
                    "resources/" + settings['datastore_filename']

这解决了我无法像在我的 PC 上运行我的项目一样在服务器上运行我的项目的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多