最近我为 PyPI 创建了一个 python 脚本。您可以使用 pip install
下载。问题是当你位于 python 本地化的 Scripts
文件夹中时,你只能执行使用 pip install
下载的脚本(your_python_location/Scripts/myscript.py
).
但这对用户来说是个麻烦。所以我想问一下,我怎样才能让你可以从任何地方执行脚本? (就像你可以在不指定 pip 位置的情况下使用 pip 一样)。我也不希望每个用户都需要设置脚本的路径。
我的 Setup.py(可能有用):
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
with open('requirements.txt') as f:
requirements = f.read().splitlines()
setuptools.setup(
name="boston-housing-prediction",
version="0.2.0a0",
author="xx",
author_email="xxx@gmail.com",
py_modules=["misc_libary", "polynomial_regression_libary", "linear_regression_libary"],
scripts=["boston-housing-main.py"],
description="Predict housing prices in boston.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/XXX",
packages=setuptools.find_packages(),
classifiers=[
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7'
],
keywords="regression meachine-learning housing_prices_boston learning_purpose",
license="MIT",
install_requires=requirements,
python_requires='>=3.5',
)
最佳答案
你可以在setup.py
中指定entry_points
,比如
setuptools.setup(
# ...
entry_points = {
'console_scripts': [
'boston_housing = boston-housing-main:main'
]
},
)
这将导致 pip install
在类似 /usr/local/bin/boston_housing
的地方安装一个包装器,它基本上引入了模块 boston-housing-main
并运行其 main()
函数。
你可能想用这个替换 scripts
条目,虽然没有理由本身你不能同时拥有这两个。
关于python - 使我的 pypi 脚本可执行,而无需每次都指定脚本的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047658/