python - 自定义 Python 包无法通过 VirtualEnv 中的 Pip 正确安装

标签 python package pip setup.py

我已经为我正在处理的项目创建了一个新的 python 包。

它的文件夹结构类似于:

bin
docs
mypackage
license.md
readme.md
setup.py

这是我的 setup.py 的内容:

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description': 'A python client for foo',
    'author': 'Me',
    'url': 'https://github.com/account/mypackage',
    'download_url': 'https://github.com/account/mypackage',
    'author_email': '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcbab3b39cbebdaef2bfb3b1" rel="noreferrer noopener nofollow">[email protected]</a>',
    'version': '0.1',
    'install_requires': ['nose'],
    'name': 'MyPackage'
}

setup(**config)

我还没有准备好公开它,所以我直接从 Git 安装它:

pip install git+ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="94f3fde0d4f3fde0fce1f6baf7fbf9" rel="noreferrer noopener nofollow">[email protected]</a>/account/mypackage.git

这是输出:

Downloading/unpacking git+ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f0979984b0979984988592de939f9d" rel="noreferrer noopener nofollow">[email protected]</a>/account/mypackage.git
  Cloning git+ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="adcac4d9edcac4d9c5d8cf83cec2c0" rel="noreferrer noopener nofollow">[email protected]</a>/account/mypackage.git to /var/folders/7w/qsdf76s97sfsdf7sdf97sdf/T/pip-ovbMpR-build
  Running setup.py egg_info for package from git+ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b2c223f0b2c223f233e2965282426" rel="noreferrer noopener nofollow">[email protected]</a>/account/mypackage.git

Downloading/unpacking nose (from MyPackage==0.1)
  Downloading nose-1.2.1.tar.gz (400kB): 400kB downloaded
  Running setup.py egg_info for package nose

    no previously-included directories found matching 'doc/.build'
Installing collected packages: nose, MyPackage
  Running setup.py install for nose

    no previously-included directories found matching 'doc/.build'
    Installing nosetests script to /Users/user/sandbox/.pyvirtualenvs/project/bin
    Installing nosetests-2.7 script to /Users/user/sandbox/.pyvirtualenvs/project/bin
  Running setup.py install for MyPackage

Successfully installed nose MyPackage
Cleaning up...

它说它安装正确,但是当我检查/Users/user/sandbox/.pyvirtualenvs/project/bin 时 - 我没有看到我的 MyPackage。

我看到 Nose 安装正确,并且它创建了一个 MyPackage-0.1-py2.7.egg-info/目录 - 但我的库没有 mypackage 文件夹。

因此,当我尝试使用该包时,找不到它。

为什么?我的setup.py配置不正确吗?

最佳答案

您实际上并没有指示安装程序安装您的软件包。

你需要这样的东西:

packages=['mypackage'],

在您的 setup() 调用中。查看 py-bootstrap 是如何做到的:https://github.com/splaice/py-bootstrap/blob/master/setup.py

要包含 bin 脚本,您还需要使用 scripts 指令列出脚本,例如:

scripts=['bin/myscript']

关于python - 自定义 Python 包无法通过 VirtualEnv 中的 Pip 正确安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15073892/

相关文章:

python - 用python解析网站

android - 为 Android 开发创建库?

r - `data.table::unique` 错误 : is not an exported object from namespace

python - osx homebrew 缺少 pip 安装 python3.5

python - Scrapy 立即跟随 302 重定向

python - lambda 函数如何获得它的值?

python - 如何使用 django import-export 在 admin 中订购导入字段?

r - data() 从哪里获取数据集描述?

macos - python找不到用pip安装的包

python-3.x - Pandas 1.0.0 与 python 3.5 不兼容