Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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/8/selenium/4.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_Python Click - Fatal编程技术网

为什么我的Python单击命令不起作用?

为什么我的Python单击命令不起作用?,python,python-click,Python,Python Click,以下是我的项目代码结构: pynique ├── cli │   ├── __init__.py │   └── pynique_ops.py ├── pynique │   ├── __init__.py ├── README.md ├── setup.cfg └── setup.py 我的setup.py内容是: from setuptools import ( find_packages, setup ) print find_packages() setup(

以下是我的项目代码结构:

pynique
├── cli
│   ├── __init__.py
│   └── pynique_ops.py
├── pynique
│   ├── __init__.py
├── README.md
├── setup.cfg
└── setup.py
我的
setup.py
内容是:

from setuptools import (
    find_packages,
    setup
)
print find_packages()

setup(
    name='pynique',
    version='0.1.1.dev1',
    description='pynique app',
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)'
    ],
    packages=find_packages(exclude=['tests']),
    include_package_data=True,
    install_requires=[
        'jinja2',
        'PyYAML',
        'Click'
    ],
    entry_points='''
        [console_scripts]
        start-pynique=pynique.cli.pynique_ops:start
    ''',
)
我在pynique top folder项目中完成了以下工作: -
pip安装-e.

但是我的
start pynique
不起作用,它抛出以下错误:

Traceback (most recent call last):
  File "/home/agung/.virtualenvs/pynique/bin/start-pynique", line 11, in <module>
    load_entry_point('pynique', 'console_scripts', 'start-pynique')()
  File "/home/agung/.virtualenvs/pynique/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 542, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/agung/.virtualenvs/pynique/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
    return ep.load()
  File "/home/agung/.virtualenvs/pynique/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/home/agung/.virtualenvs/pynique/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2235, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named cli.pynique_ops
(pynique) 
回溯(最近一次呼叫最后一次):
文件“/home/agung/.virtualenvs/pynique/bin/start pynique”,第11行,在
加载入口点(“pynique”、“控制台脚本”、“启动pynique”)()
文件“/home/agung/.virtualenvs/pynique/local/lib/python2.7/site packages/pkg_resources/\u_init__.py”,第542行,加载入口点
返回获取分布(dist)。加载入口点(组、名称)
文件“/home/agung/.virtualenvs/pynique/local/lib/python2.7/site packages/pkg_resources/\u_init__.py”,第2569行,在加载入口点
返回ep.load()
文件“/home/agung/.virtualenvs/pynique/local/lib/python2.7/site packages/pkg_resources/_init__.py”,第2229行,已加载
返回self.resolve()
文件“/home/agung/.virtualenvs/pynique/local/lib/python2.7/site packages/pkg_resources/_init__.py”,第2235行,解析
module=\uuuu导入(self.module\u name,fromlist=[''\uuuu name\uuuuuuu'],级别=0)
ImportError:没有名为cli.pynique_ops的模块
(皮尼克)

您知道为什么没有将模块命名为cli.pynique_ops?我的setup.py有什么问题吗?

我终于知道了修复方法。Python setup.py安装将根目录(
pynique
)中的所有目录作为包名发布

因此,如果我仍然使用与问题所述相同的文件夹结构,
cli
pynique
将作为python包安装。因此,修复应该是这样的
start pynique=cli.pynique\u ops:start

但是,我没有使用该文件夹结构,而是将其更改为:

pynique
├── pynique
│   ├── cli
│   │   ├── __init__.py
│   │   ├── pynique_ops.py
├── README.md
├── setup.cfg
├── setup.py
因此,我仍然可以使用
start pynique=pynique.cli.pynique\u ops:start
作为有效设置