【发布时间】:2018-09-18 18:32:55
【问题描述】:
我创建了一个具有以下结构的项目:
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
这三个文件中的每一个都包含一个与文件同名的类(即,要使用这个类,需要from MLP import MLP)。这是 __init__.py 文件所需的正确内容吗?
如果我从创建项目的目录中运行此文件,它运行良好。但是,当我将项目上传到 PyPI(或者甚至在本地执行 pip install . 以 pip 安装它)时,我收到以下错误:
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 安装,然后执行以下操作:
from TFNeuralNetworks import RNN
rnn = RNN(num_inputs=2, num_outputs=1, hidden_sizes=[100])
同时还允许我在本地运行代码进行测试。
【问题讨论】:
-
from . import NeuralNetwork -
好的,在发生类似错误之前,这更进一步。
MLP和RNN类都是NeuralNetwork的子类,因此它们都有from NeuralNetwork import NeuralNetwork。这现在抛出一个错误,应该如何解决? -
from TFNeuralNetworks import NeuralNetworks或同上。 -
这让我非常困惑,我现在收到更多错误。我根本不理解这个必需的结构。有没有办法可以编写代码和这些导入以使文件可以从目录中本地运行,也可以上传到 PyPI 然后安装 pip?
-
@PeterWood 我可以请你看看这里的代码:github.com/KevOBrien/TFNeuralNetworks 并推荐它应该如何构建和正确完成导入吗?
标签: python pip setuptools distutils pypi