如何在我的项目中使用github的Python模块代码?

时间:2015-07-31 03:09:08

标签: python-3.x scikit-learn

我无法弄清楚如何为我的项目中的代码设置路径和导入语句:

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项目中工作?

1 个答案:

答案 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包。