0

我有一个包含多个 python 代码文件的项目。我有一个模型文件,一个用于数据实用程序,一个用于训练模型。我知道如何提交一个所有代码都在一个文件中的模型。如何表明 T 在我的项目中有更多文件?也许需要在setup.py文件中添加一些东西或__init__.py.

我的目录如下所示:

setup.py
trainer/
  __init__.py
  task.py
  model/
     seq2seq.py
     model.py
  data_utli.py
4

2 回答 2

1

您不需要手动创建自己的包,但如果您愿意,欢迎您使用。

让包自动工作有两个重要步骤:

  1. 创建一个合适的python包
  2. 确保你setup.py是正确的。

在您的情况下,model子目录导致问题。快速解决方法是移至trainer/model/*. trainer/否则,您可能希望通过在子目录中添加(可能是空白的)文件来制作model适当的子包。__init__.pymodel/

接下来,确保setup.py正确指定您的文件。本文档中提供了一个示例脚本,为方便起见,在此重复:

from setuptools import find_packages
from setuptools import setup

setup(name='trainer',
      version='0.1',
      include_package_data=True,
      description='blah',
      packages=find_packages()
)

您可以通过运行来验证它是否有效:

python setup.py sdist

这将创建一个dist带有文件的子目录trainer-0.1.tar.gz。提取该文件的内容表明所有文件都已正确包含:

$ cd dist
$ tar -xvf trainer-0.1.tgz
$ find trainer-0.1/
trainer-0.1/
trainer-0.1/setup.py
trainer-0.1/setup.cfg
trainer-0.1/trainer
trainer-0.1/trainer/data_util.py
trainer-0.1/trainer/task.py
trainer-0.1/trainer/__init__.py
trainer-0.1/trainer/model
trainer-0.1/trainer/model/__init__.py
trainer-0.1/trainer/model/model.py
trainer-0.1/trainer/model/seq2seq.py
trainer-0.1/PKG-INFO
trainer-0.1/trainer.egg-info
trainer-0.1/trainer.egg-info/dependency_links.txt
trainer-0.1/trainer.egg-info/PKG-INFO
trainer-0.1/trainer.egg-info/SOURCES.txt
trainer-0.1/trainer.egg-info/top_level.txt
于 2017-03-11T15:55:44.980 回答