我创建了一个具有以下结构的项目:
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 .
以在本地 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我可以 pip install,然后执行以下操作:
from TFNeuralNetworks import RNN
rnn = RNN(num_inputs=2, num_outputs=1, hidden_sizes=[100])
同时还允许我在本地运行代码进行测试。
通过查看您的存储库,您应该按如下方式使用导入
MLP.py
from . import NeuralNetwork
RNN.py
from . import NeuralNetwork
__init__.py
(LEAVE BLANK)
据我所知,在 py3 中,您可以在内部使用模块,例如
NeuralNetwork.NeuralNetwork
# or if you prefer
from . import NeuralNetwork.NeuralNetwork as NeuralNetwork
这样你就可以用 pip 安装了。接下来就可以像这样使用了
from neuralnetwork import RNN
RNN.do_some_code()
我是一名优秀的程序员,十分优秀!