【发布时间】:2020-01-29 13:26:23
【问题描述】:
我有这个项目架构,我想让my_package pip 可安装。该项目不仅包含要打包的东西,还包含简单的脚本(快速和肮脏的那种)以及对我的项目很重要但对包不重要的东西(例如外部数据)。
my_project
├── code
│ ├── data #<-- I don't want to package this
│ │ └── make_dataset.py
│ ├── script #<-- I don't want to package this
│ │ └── make_experiment.py
│ └── my_package #<-- This is the module I want to package
│ ├── core.py
│ ├── utils.py
│ └── __init__.py
├── data
│ └── some_data.txt
├── references
│ └── reference_paper.pdf
├── reports
│ └── report.tex
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
我希望setup.py 文件位于顶级目录中,以便人们可以照常进行
git clone gitinstance.com/my_project
cd my_project
pip install .
并在他们的环境中安装my_package 模块,以便他们已经可以执行python -c import my_package; print(my_package.__version__) 并且它可以工作。
问题是:如何在不将setup.py 放入code 目录的情况下使my_package pip 可安装?
通常,setup.py 看起来像这样:
from setuptools import find_packages, setup
setup(
name='my_package',
packages=find_packages(),
version='0.1.0',
description='Research project',
author='Name',
license='MIT',
)
但它不会在这里工作,因为setup.py 找不到my_package。
【问题讨论】:
标签: python python-3.x pip setup.py