我创建了一个具有以下结构的项目:
TFNeuralNetworks/
.git/
.gitignore
LICENSE
README.md
setup.py
TFNeuralNetworks/
__init__.py
MLP.py
NeuralNetwork.py
RNN.py
TFNeuralNetworks/setup.py
包含调用setuptools.setup()
的所有相关参数。
TFNeuralNetworks/TFNeuralNetworks/__init__.py
仅包含以下内容:
import NeuralNetwork
import MLP
import RNN
这3个文件中的每个文件都包含一个与该文件同名的类(即,要使用该类,将需要from MLP import MLP
)。这是__init__.py
文件所需的正确内容吗?
如果我从创建项目的目录中运行此文件,则该文件可以正常运行。但是,当我将项目上传到PyPI时(甚至进行pip install .
来在本地点播它的所有内容),都会出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/kevin/Documents/TFNeuralNetworks/TFNeuralNetworks/__init__.py", line 1, in <module>
import NeuralNetwork
ModuleNotFoundError: No module named 'NeuralNetwork'
我从几个在线教程中都遵循了这种结构,看不到我要去哪里错了-这是什么问题?
编辑:
我仍然无法解决这个问题。我想要做的就是创建一个from this code base程序包,可以进行点安装,然后执行以下操作:
from TFNeuralNetworks import RNN
rnn = RNN(num_inputs=2, num_outputs=1, hidden_sizes=[100])
同时还允许我在本地运行代码进行测试。
答案 0 :(得分:0)
From looking into your repository, you should use your imports as following
MLP.py
from . import NeuralNetwork
RNN.py
from . import NeuralNetwork
__init__.py
(LEAVE BLANK)
As far as I can remember in py3 you can then use modules internally like
NeuralNetwork.NeuralNetwork
# or if you prefer
from . import NeuralNetwork.NeuralNetwork as NeuralNetwork
That way you will be able to instal with pip. Next, you can use it like so
from neuralnetwork import RNN
RNN.do_some_code()