Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从任何目录运行Python模块_Python_Setuptools - Fatal编程技术网

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

如何从任何目录运行Python模块,python,setuptools,Python,Setuptools,我想创建一个名为myscript的模块,它可以通过命令行从任何目录运行 我创建了一个如下所示的setup.py文件: lib myscript __init__.py (empty) __main__.py (the code that should run) setup.py 导入设置工具 setuptools.setup( name='myscript', version='1.0', packages=['lib.myscript'], 安装需要=['setupto

我想创建一个名为
myscript
的模块,它可以通过命令行从任何目录运行

我创建了一个如下所示的
setup.py
文件:

lib
  myscript
    __init__.py (empty)
    __main__.py (the code that should run)

setup.py
导入设置工具
setuptools.setup(
name='myscript',
version='1.0',
packages=['lib.myscript'],
安装需要=['setuptools','pandas>=0.22.0','numpy>=1.16.0'],
python_需要='>=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\u 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
        ]
    },
)
这里的
\uuuu main\uuuu
是一个文件名(在您的情况下)。而
main
是一个函数(您可以将其更改为您想要的任何函数)。而
myscript
是您的命令

现在您可以运行(在您的情况下,可能是
myscript
):

然后,您可以从任何位置运行脚本:

myscript
编辑:

按如下方式排列文件结构:

myscript
  myscript
    __init__.py (empty)
    __main__.py (the code that should run)
  setup.py

关于
python-m lib.myscript
?我使用了您提供并运行
python setup.py install
python-m pip install myscript
的确切的
setup.py
参数,但是我仍然收到一个python错误,说
没有名为myscript
的模块,我编辑了我的答案,此外,您还必须根据需要修改
setup.py
文件,并且您可能希望在安装之前清理pip缓存