繁体   English   中英

如何从任何目录运行Python模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM