运行PyCharm项目的正确方法

时间:2016-01-12 01:14:36

标签: python cron

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

我已在以下布局中在pycharm中创建了一个项目

bin
    main
helpers
    userhelper
models
    user
    session
tests
    userTest

在我的主要内容中,我运行调用所有内容的代码,这就像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&#34))'相对于我的项目到位了吗?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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