从我的包中导入PyCharm识别但不是命令行

时间:2018-02-28 14:09:08

标签: python python-3.6

我创建了以下包树:

/main_package
    /child_package
    version.py

其中version.py包含单个字符串变量(VERSION)

在子包中的脚本中,我通过以下行导入version.py:

from main_package.version import VERSION

当我从PyCharm运行代码时,一切都很好,但是当我通过命令行运行代码时,我收到以下错误消息:

C:\Users\usr\PycharmProjects\project\main_package\child_package>python script.py
Traceback (most recent call last):
File "script.py", line 2, in <module>
from main_package.version import VERSION
ModuleNotFoundError: No module named 'main_package'

我在互联网上发现我可能需要将我的包添加到python路径,但它似乎对我不起作用

2 个答案:

答案 0 :(得分:2)

PyCharm将Python Path设置为项目的根目录(默认情况下)。要以一种快速的方式模仿它,你只需要在shell会话中执行一次,然后再调用python whatever

set PYTHONPATH=C:\Users\usr\PycharmProjects\project

答案 1 :(得分:0)

pythonic方法是使用setup.py文件在系统中安装项目(检查python Minimal Structure):

from setuptools import setup

setup(name='main_package',
      version='0.1',
      description='main package',
      license='MIT',
      packages=['main_package'],
      zip_safe=False)

然后按如下方式安装:

  • python setup.py install用于全局安装

OR

  • python setup.py develop以可编辑模式进行本地安装