繁体   English   中英

以下模块不会导入

[英]The following module won't import

我在 Python 中有一个 PyCharm “项目”,也就是说,我有一个文件夹,它是各种实验性 Z23EEEB4347BDD26BFC6B7EE9A3B755pyterclass 笔记本的集合,以及以下便捷方法/Julyterclass 文件,

实际上,我刚刚写了一些我引以为豪并希望重复使用的东西。 我发现很难导入。 我已经查看并尝试实施以下问题的答案,但无济于事:

  1. 无法在 Python 中导入我自己的模块
  2. 如何在 python 3.6 中导入我自己的模块?
  3. 如何以优雅的方式导入我自己的模块?

项目结构:

learning_project
|
├───.idea
│   ├───dictionaries
│   └───inspectionProfiles
|
├───decision_trees
├───linear_algebra
├───neural_networks
|   ├───based_sequential.py <---------------------------- # Module location #
│   ├───cross-entropy-gradient-descent
│   └───learning pytorch 
|       ├─── class_notebook.ipynb <---------------------- # Want to import for use here #
|       └───Cat_Dog_data  
|
└───venv
    ├───Include
    ├───Lib
    │   └───site-packages
    └───Scripts

我尝试了以下方法:

import based_sequential
from based_sequential import ClassName
import based_sequential.ClassName
import neural_networks
from neural_networks import based_sequential
import neural_networks.based_sequential
from neural_networks.based_sequential import ClassName

全部导致错误No module named '<pick your poison>'

  • 问题1:显然,我错过了什么?
  • 问题 2:我的组织是否是问题的一部分? 我开始怀疑是这样的。

我还怀疑我需要做一些工作来学习编写比 one.py 文件更大的代码的管理方面。

我希望您在尝试导入的函数/模块中返回一些值。 如果没有,请检查。

否则,只需使用sys模块中的sys.path并将其指向要导入的文件。

>>> import sys
>>> sys.path
   ['',
   'C:\\Python33\\Lib\\idlelib',
   'C:\\Windows\\system32\\python33.zip',
   'C:\\Python33\\DLLs',
   'C:\\Python33\\lib',
   'C:\\Python33',
   'C:\\Python33\\lib\\site-packages']

我建议你检查相对进口。 https://realpython.com/absolute-vs-relative-python-imports/解决这个问题的方法如下所示:

我将使用的文件结构:

└── project
    ├── package1
    │   ├── module1.py
    │   └── module2.py
    └── package2
        ├── __init__.py
        ├── module3.py
        ├── module4.py
        └── subpackage1
            └── module5.py

要在模块 1 中从模块 2 导入,请使用:

from .module2 import function1

在从 module2 导入 module3 的情况下,使用:

from ..package2 import module3

在您自己的情况下,它应该是:

from ..based_sequential import whatever

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM