簡體   English   中英

使用setuptools將模塊安裝到站點包

[英]Install module to site-packages with setuptools

我正在嘗試將CLI上傳到PIP,一旦安裝,將在用戶鍵入myscript時運行

我的文件夾結構是這樣的:

lib
  myscript
    __init__.py (empty)
    __main__.py (code that needs to run)
    utilities.py (needs to be imported from main)

scripts
  myscript

setup.py

我的setup.py應該安裝lib.myscript包並安裝myscript作為命令行模塊

setup.py

import setuptools
setuptools.setup(
    name='myscript',
    version='1.0',
    scripts=['./scripts/myscript'],
    packages=['lib.myscript'],
    install_requires=['setuptools', 'pandas >= 0.22.0', 'numpy >= 1.16.0'],
    python_requires='>=3.5'
)

scripts/myscript

#!/usr/bin/env bash

if [[ ! $@ ]]; then
    python -m myscript -h
else
    python -m myscript $@
fi

一旦我做了python setup.py installmyscript就會作為命令行模塊安裝並運行。 但是,它會拋出一個錯誤,說沒有名為myscript模塊。

你還沒有安裝myscript ,你已經安裝了lib.myscript所以試試這個: python -m lib.myscript 並且讓Python將lib識別為一個包創建一個空文件lib/__init__.py

PS。 這段代碼:

#!/usr/bin/env bash

if [[ ! $@ ]]; then
    python -m myscript -h
else
    python -m myscript $@
fi

可以簡化為:

#!/usr/bin/env bash
exec python -m myscript ${@:--h}

在shell-speak中表示“如果不為空則使用$@ ,否則-h

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM