设置
最佳做法是使用 src布局(参见https://blog.ionelmc.ro/2014/05/25/python-packaging/),因此,我建议您像这样组织目录(因为您不应打包测试和自述文件以构建分布,它们将保留在src
目录之外):
project
├─ src
| └─ package
| ├─ __init__.py
| ├─ __main__.py
| ├─ data.tsv
| └─ module.py
├─ tests
| └─ test_module.py
├─ MANIFEST.in
├─ README.rst
└─ setup.py
具有以下setup.py文件内容:
import setuptools
setuptools.setup(
name="project name",version="project version",url="project URI",author="your name",author_email="your email",package_dir={"": "src"},packages=setuptools.find_namespace_packages(where="src"),include_package_data=True
)
以及以下MANIFEST.in文件内容:
graft src
graft tests
global-exclude *.py[cod]
注释。-如果您不希望在保留package
目录的同时在src
目录中找到顶级src
目录(例如发布修改):
project
├─ src
| ├─ __init__.py
| ├─ __main__.py
| ├─ data.tsv
| └─ module.py
├─ tests
| └─ test_module.py
├─ MANIFEST.in
├─ README.rst
└─ setup.py
然后将package
映射到src
参数中的package_dir
目录,并在package
函数的packages
参数中显式列出setuptools.setup
在setup.py文件中(参见https://docs.python.org/3/distutils/examples.html#pure-python-distribution-by-package):
import setuptools
setuptools.setup(
name="project name",package_dir={"package": "src"},packages=["package"],include_package_data=True
)
包裹
现在,您可以使用以下命令将项目打包到 source 分发中:
$ python setup.py sdist
使用此命令
或 built 发行版(这是setuptools
的扩展命令,要求在您的Python环境中安装wheel
-因此运行pip install wheel
之前):
$ python setup.py bdist_wheel
或同时使用以下命令:
$ python setup.py sdist bdist_wheel
在新的dist
目录中创建以下文件:
-
{project name}-{project version}.tar.gz
用于源分发;
-
{project name}-{project version}-{compatibility tags}.whl
用于构建发行版。
安装
现在您可以使用以下命令从源代码分发安装项目:
$ pip install dist/{project name}-{project version}.tar.gz
或使用以下命令从构建的发行版中进行
:
$ pip install dist/{project name}-{project version}-{compatibility tags}.whl
或使用此命令从项目树(无需为此项目打包项目):
$ pip install .
运行
最终,您可以像这样导入项目:
import package.module
package.module.function()
,
通常的项目结构:(长话短说,您想要一个带有项目名称的目录setup.py来获取它,这是通常的方法,请看几个存储库,例如https://github.com/boto/boto3)。 / p>
-- setup.py
-- README.md
--- prediction_model
|-- __init__.py
|-- data
| |-- VDFF.csv
| +-- SAAA.csv
|-- models.py
|-- preprocess.py
|-- tests
+-- _data.csv
然后您要执行以下操作:
virtualenv myvirtualenv
source myvirtualenv/bin/activate
python setup.py install
您的设置看起来不错,现在预测模型是一个包,您也可以更改:
from . import preprocess
from . import models
收件人
from prediction_model import preprocess
from prediction_model import models
正常setup.py
from setuptools import setup,find_packages
setup(
name='cost_estimation',version='0.0.1',packages=find_packages(),url='http://github.com/<WHATEVER/WHATEVER>',install_requires=[
'numpy',],tests_require=[
'nosetests',test_suite='nose.collector',license='',dependency_links=[
'http://YOURPRIVATEPYPISERVER/packages'
],keywords='models,prediction',author='your name',description='Model prediction cool stuff'
)
本文链接:https://www.f2er.com/3050361.html