2017-04-18 102 views
1

我知道这个问题已被多次询问。我已经阅读了所有这些内容,但无法解决我的问题。以下是我的目录结构。ImportError:No module named <something>

ankur 
    --ankur1 
      __init__.py 
      util.py 
    --ankur2 
      main.py 
    --__init__.py 

在main.py中,我导入了以下内容。

import ankur.ankur1.util 

当我在windows中执行代码时,它工作得很好。但在Linux中,我收到以下错误。

ImportError: No module named ankur.ankur1.util 

我还阅读了关于Modules和Packages的官方python doc

+0

您是否已将软件包安装到环境中? – Busturdust

+0

感谢您的回复。我没有明白。我们是否需要单独安装?在我的Windows环境中,它工作正常。 –

+0

我认为这可能是'PYTHONPATH'问题​​,它在Windows上正确配置,而不是在Linux上,将代码库添加到路径或安装它,以便它自动定位到路径 – Busturdust

回答

1

你的包装结构是OK的。您的进口声明是确定的。缺少的唯一东西是包装在sys.path中可见。

通常我们通过setup.py这样做,通过在本地“安装”软件包,但您的项目似乎没有setup.py请勿直接修改代码中的sys.path。您可以改为使用PYTHONPATH环境变量。在你的shell中:

export PYTHONPATH=/path/to/parent 

其中parent是包含ankur子目录的目录。