[英]How to run a Python module from any directory
我想创建一个名为myscript
的模块,该模块可以从任何目录通过命令行运行。
我创建了一个setup.py
文件,如下所示:
import setuptools
setuptools.setup(
name='myscript',
version='1.0',
packages=['lib.myscript'],
install_requires=['setuptools', 'pandas >= 0.22.0', 'numpy >= 1.16.0'],
python_requires='>=3.5'
)
运行python setup.py install
,我仍然无法在脚本所在目录之外的任何地方运行python -m myscript
。
我的文件夹结构如下所示:
lib
myscript
__init__.py (empty)
__main__.py (the code that should run)
setup.py
为此,您必须在setup.py
设置entry_points
函数(如果我正确理解了您的问题)。
您的setup.py
变为:
import setuptools
setuptools.setup(
name='myscript',
version='1.0',
packages=setuptools.find_packages(),
install_requires=['setuptools', 'pandas >= 0.22.0', 'numpy >= 1.16.0'],
python_requires='>=3.5'
entry_points={
'console_scripts': [
'myscript=myscript.__main__:main' # or any specific function you would like
]
},
)
这里__main__
是文件名(在您的情况下)。 main
是一个函数(您可以将其更改为所需的任何函数)。 myscript
是您的命令。
现在您可以运行(也许是myscript
):
python -m pip install yourpackage
然后,您可以从任何地方运行脚本:
myscript
编辑:
安排您的文件结构,例如:
myscript
myscript
__init__.py (empty)
__main__.py (the code that should run)
setup.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.