【发布时间】:2018-05-24 12:29:34
【问题描述】:
所以很长一段时间以来,我一直在摆弄 Python 并进行一些认真的工作。尽管如此,我仍然偶尔会遇到一些问题。
我发现在使用 Python 时使用PyCharm CE 是最舒服的。典型的场景是我只是创建一个新的virtualenv,启动 PyCharm 并在那里打开我的virtualenv。从那时起,就像自动驾驶一样,PyCharm 处理与使用 site-packages 和 Python 运行时相关的所有脏活。
我总是喜欢保持我的virtualenvs 整洁有序,因此我经常发现自己在语义上将我的源代码组织到子模块/子文件夹中。因此,每当我想从另一个文件夹中导入一些代码、类或其他任何内容时,我只需将其导入即可。
假设我的virtualenv 中有以下结构:
├── bin
├── include
├── lib
└── src
├── foo.py
├── important_scripts
├── some_script.py
└── some_other_script.py
└── pip-selfcheck.json
现在,在foo.py 的某个地方,我想使用在some_script.py 中实现的名为A() 的函数。显而易见的方法是在foo.py 中添加一个简单的行——类似于from some_script import A。当我从 PyCharm 运行和调试我的代码(在本例中为 foo.py)时,这样做非常有效。
与我上面描述的典型场景相反,我想从Terminal.app 做同样的事情。所以我启动终端,cd 到我的virtualenv 并激活它。然后,我所做的是,使用我的virtualenv 中bin 文件夹下的Python 可执行文件,我尝试运行foo.py(至少我认为这相当于右键单击并运行@ 987654341@ 来自 PyCharm 窗口)。不幸的是,我收到了错误ModuleNotFoundError: No module named 'some_script'。
我想我遗漏了一个简单的细节或其他东西。因为就像我说的,当从 PyCharm 运行时,它就像魔术一样工作。
无论如何,我们将不胜感激任何建议或帮助。提前致谢。
【问题讨论】:
标签: python terminal pycharm virtualenv