标签:use 代码 逗号 不同 标准库 分离 python解释器 code 各类
import sklearn.svm
from sklearn.svm import SVC
import numpy.random as nprand
wxoa ?? tree -Cl
.
├── main.py
├── test
└── wxoa
├── __init__.py
├── __pycache__
│ └── __init__.cpython-35.pyc
├── entity
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ └── user.cpython-35.pyc
│ └── user.py
└── util
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ └── ioutil.cpython-35.pyc
└── ioutil.py
7 directories, 12 files
在包导入中, 如果出现了.和..起头, 则会涉及到package(不是module)的关系, ..表示上一级package, 这个上一级package需要有一个__init__.py才是合法的, .表示当前package, 当前package需要有一个__init__.py才是合法的
.和..涉及到的python程序的启动项, 这里会比较复杂, 简而言之, 在涉及到..表示的上级package的时候, 如果python程序的启动文件就是在这里则Python解释器不会认为..表示的上级目录的package是一个合法的目录, 尽管有__init__.py文件, 因此会报错; 这样就给代码测试带来的麻烦, 不能直接在使用..和.中直接测试代码, 也就是
if __name__ == ‘__main__‘: pass
因为这样已启动程序就会报错, 所以报错, 在下面提出解决方案
from wxoa.service import user
标签:use 代码 逗号 不同 标准库 分离 python解释器 code 各类
原文地址:https://www.cnblogs.com/megachen/p/10048738.html