【问题标题】:How import module in PyCharmPyCharm中如何导入模块
【发布时间】:2023-03-30 11:24:01
【问题描述】:

我有两个项目。在第一个中,我可以像这样导入我的模块 importme.py:

import importme

现在我可以在 importme 模块中使用我的函数 hello() 没有任何问题。在第二个中,我收到:

ImportError: No module named 'importme'

但我可以通过以下方式导入它:

from . import importme

为什么我不能在两个项目中以相同的方式导入我的模块?我应该配置一些路径吗?

EDIT1

第一个项目的目录结构:

testproject/
├── importme.py
└── start.py

第二个项目的目录结构:

spiders/                                                                                                                                                                                                                                                                                                                     
├── spider.py                                                                                                                                                                                                                                                                                                           
├── download_page.py                                                                                                                                                                                                                                                                                                         
├── importme.py                                                                                                                                                                                                                                                                                                              
└── __init__.py  

文件 init.py 为空。

【问题讨论】:

  • 请添加一些关于目录结构的概述。可能是的,有类似PYTHONPATH.
  • 我在EDIT1下添加了两个项目的目录结构。
  • 所以你可以看到第二个项目是包,所以你应该像这样导入它 from spiders import importme 。我只是猜这个不起作用一个是__init__
  • 和其他一些相关的 SO 问题:stackoverflow.com/questions/10647729
  • 我从与主程序相同的目录中导入它。在 start.py 中,我导入 importme.py。 inspider.py 我导入 importme.py。那么有什么区别呢?

标签: python-3.x scrapy pycharm


【解决方案1】:

我最喜欢处理PYTHONPATH 的方法是在虚拟环境中以编辑模式安装包。

  1. 创建虚拟环境

    # create
    $ python -m venv ~/virtualevns/myenv
    # then activate it
    $ source ~/virtualenvs/myenv/bin/activate
    # you can check whether it got activated
    $ which python
    home/user/virtualenvs/myenv/bin/python
    
  2. 为您的项目编写setup.py。参考官方distributing packages教程。

  3. 以可编辑格式安装包。

    如果您安装带有-e 标志的软件包,pip 将以可编辑格式安装它,这意味着您对代码所做的所有更改都将出现在您环境的软件包中:

    $ cd mypkg
    $ pip install -e .
    
  4. 最后,您需要将虚拟环境设置为在您使用的编辑器的任何 IDE 中使用。

这是一个很棒的工作流程,因为它干净且可靠 - 您使用的正是您在生产/成品包环境中使用的东西。

【讨论】:

  • 我正在使用 venv,但问题是,在第一个示例中,我可以导入模块,但在第二个示例中我不能。所以我的问题是,为什么,差异在哪里以及如何解决它。
猜你喜欢
  • 2013-06-01
  • 2017-02-07
  • 1970-01-01
  • 2021-05-07
  • 2016-06-24
  • 2016-09-03
  • 2022-10-14
  • 2020-10-09
  • 1970-01-01
相关资源
最近更新 更多