pipenv未安装GitHub软件包的依赖项

时间:2018-07-25 09:43:56

标签: python github package virtualenv pipenv

我有一个python软件包上传到GitHub。该软件包使用Pipenv来管理依赖项。另一方面,我有一个使用该库的python工具(并使用Pipenv来管理自己的依赖项)。

查看我程序包的Pipfile,我们可以看到它具有两个依赖项:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"
loggly-python-handler = "*"

[dev-packages]
pylint = "*"

[requires]
python_version = "3.7"

在我的python工具中,我使用以下命令安装了软件包: pipenv install -e git+https://github.com/<name>/<name>.git#egg=<name>

但是,当检查该工具的点状图时,我的程序包似乎没有依赖性:

(tool-aqleTTYE) C:\Projects\tool>pipenv graph
<my_package>==0.0.3
pylint==2.0.1
  - astroid [required: >=2.0.1, installed: 2.0.1]
    - lazy-object-proxy [required: Any, installed: 1.3.1]
    - six [required: Any, installed: 1.11.0]
    - wrapt [required: Any, installed: 1.10.11]
  - colorama [required: Any, installed: 0.3.9]
  - isort [required: >=4.2.5, installed: 4.3.4]
  - mccabe [required: Any, installed: 0.6.1]

我希望看到我的包裹依赖于requestsloggly-python-handler。确实,在运行代码时,它表示找不到包依赖项。

pipenv run python tool.py

    ....


  File "c:\.virtualenvs\tool-aqlettye\src\tool\tool\logger.py", line 35, in <module>
    'level': 'DEBUG',
  File "c:\python37\Lib\logging\config.py", line 792, in dictConfig
    dictConfigClass(config).configure()
  File "c:\python37\Lib\logging\config.py", line 563, in configure
    '%r' % name) from e
ValueError: Unable to configure handler 'loggly'

请确保:

(tool-aqleTTYE) C:\Projects\tool>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'requests'

是错误还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试:

pipenv lock --clear

这应该清除您的锁定文件。 它对我有用。

只需卸载并安装:

pipenv uninstall --all

然后

pipenv install

我在没有“ setup.py”中定义的依赖项(install_requires)的情况下首次创建的自定义程序包(.whl)存在相同的问题。 我将其上传到个人pypi存储库并安装。 纠正我的错误并按照要求进行更新并重试安装后,依赖项不起作用。

我发现锁定文件没有显示依赖关系更改,但是“ pipenv图”显示了它们。

然后我找到了命令here