我无法弄清楚如何为我的项目中的代码设置路径和导入语句:
https://github.com/IssamLaradji/NeuralNetworks
我将代码添加为git子模块,因此这里是根文件夹:
NeuralNetworks/
train_mlp.py
然后在我的python代码中,我尝试像这样导入:
from NeuralNetworks.multilayer_perceptron import multilayer_perceptron
from NeuralNetworks.multilayer_perceptron import base
mlp = multilayer_perceptron.MultilayerPerceptronClassifier(hidden_layer_sizes=(50, 20), max_iter=200, alpha=0.02)
Python抱怨“基础”模块不可用。如何设置此子模块以在我的sklearn
项目中工作?
答案 0 :(得分:0)
1)如果没有通过pypi可用,你可以使用git将其克隆到本地系统上;或
2)github上有一个下载按钮,它会给你一个zip或tar文件,你可以下载并放在你的项目下并在本地使用。
这些示例显示了如何通过导入layered_perceptron.py在同一目录中运行脚本。如果你想把它打包成一个Python包,你需要添加__init__.py
和所有这些东西,并确保自己仍然可以导入。
或者,您可以使用通过sys.path或环境变量将包含此内容的目录添加到路径中。
编辑:要反映更新的问题,您需要在子模块中使用__init__.py
。
既然你知道git,我会首先提交一个pull请求来进入上游项目(这是一个无害的变化,不需要重新组织项目)。
在此之前,您有以下两种选择之一:
1)您的代码可以将子目录添加到sys.path,然后直接访问python模块(而不是子模块)。
2)你可以在你定义的模块中添加一段代码,将__init__.py
写入git子模块:
import os
mydir = os.path.dirname(__file__)
initf = os.path.join(mydir, 'NeuralNetworks', '__init__.py')
if not os.path.exists(initf):
open(initf, 'wb').close()
导入此模块时,它会通过创建__init__.py
模块将NeuralNetworks变为Python包。