我有一个自定义模块已编写,安装时遇到问题。这是模块的结构。
├── my_module
│ ├── .git
│ │ ├── <..>
│ ├── build
│ │ ├── <..>
│ ├── class_a
│ │ ├── __init__.py
│ │ ├── class_a_name.py
│ ├── class_b
│ │ ├── __init__.py
│ │ ├── class_b_name.py
│ ├── dist
│ │ ├── <..>
│ ├── my_module.egg.info
│ │ ├── <..>
│ ├── setup.py
│ ├── .gitignore
它存储在C:\Users\my_name\repos\my_module
中。
要安装该模块,请在anaconda提示符下使用命令setup.py
运行python setup.py install
。
如果我导航到C:\Users\my_name\AppData\Local\Continuum\anaconda3\Lib\site-packages\my_module-0.2-py3.7.egg
.egg文件存在,并且似乎已安装我的模块。
但是,当我尝试在spyder中或通过命令提示符使用模块时,会得到:
ModuleNotFoundError: No module named 'my_module'
与主题上的许多其他问题一样,我不认为这是一个路径问题。
预先感谢,乐于阐述。
答案 0 :(得分:2)
这是一个路径问题。 (是的,设置正确的路径确实很烦人)
正确的导入路径如下:
├── my_module
│ ├── .git
│ │ ├── <..>
│ ├── build
│ │ ├── <..>
│ │ my_module <-- NEW
│ │ ├── __init__.py <-- NEW
│ │ ├── class_a
│ │ │ ├── __init__.py
│ │ │ ├── class_a_name.py
│ │ ├── class_b
│ │ │ ├── __init__.py
│ │ │ ├── class_b_name.py
│ ├── dist
│ │ ├── <..>
│ ├── my_module.egg.info
│ │ ├── <..>
│ ├── setup.py
请注意,这将在模块的实际安装中排除build
和dist
。如果不想的话,将它们上移。
这可以通过向外移动setup.py而不是创建新文件夹来完成,但这取决于您。