python3 setup.py_在setup.py pip install-e中找不到Python3发行版。和虚拟环境

伙计们-这个问题已经困扰了我一段时间了,我只使用一个特定的系统。我的解决方法是在python虚拟环境之外安装python包,但我只想解决这个问题。我已经找了好几个星期的解决办法,但没有任何运气。我在Windows 10上使用Visual Studio代码。

需要帮助

我想解决下面的问题,并避免所述的解决方法,但一直无法纠正它。如果能帮助解决这个问题,我们将不胜感激。

问题

当我执行虚拟环境安装和pip安装时:

PS D:\Code\my-pkg> python -m venv venv

PS D:\Code\my-pkg> .\venv\Scripts\activate

(venv) PS D:\Code\my-pkg>pip install -e ".[test]" --force

(venv) PS D:\Code\my-pkg> publish

但是,当我尝试运行它时,我得到以下信息:

Traceback (most recent call last):

File "D:\Code\my-pkg\venv\Scripts\publish.py", line 4, in

__import__('pkg_resources').require('my-pkg==0.2.0.0')

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 3088, in

@_call_aside

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 3072, in _call_aside

f(*args, **kwargs)

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 3101, in _initialize_master_working_set

working_set = WorkingSet._build_master()

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 574, in _build_master

ws.require(__requires__)

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 892, in require

needed = self.resolve(parse_requirements(requirements))

File "C:\Python37\lib\site-packages\pkg_resources\__init__.py", line 778, in resolve

raise DistributionNotFound(req, requirers)

pkg_resources.DistributionNotFound: The 'my-pkg==0.2.0.0' distribution was not found and is required by the application

解决办法

要解决这个问题,我必须直接调用脚本:

(venv) PS D:\Code\my-pkg> .\src\Scripts\publish.py

结果是

Traceback (most recent call last):

File "D:\Code\my-pkg\src\Scripts\publish.py", line 5, in

import click

ModuleNotFoundError: No module named 'click'

我可以通过在虚拟环境之外的系统上安装click来解决这个问题。但是,对于我可能拥有的任何其他包依赖项,我都需要这样做,这违背了使用virtualenv的目的。

安装程序.py

from setuptools import setup, find_packages

import os

build_num = os.environ.get('BUILD_NUMBER', '0')

version = "0.2.0.{}".format(build_num)

test_requirements = ['pytest', 'pylint', 'coverage', 'pytest-cov']

setup(

name="my-pkg",

version=version,

packages=find_packages(),

scripts=[

'src/Scripts/publish.py'

],

tests_require=test_requirements,

install_requires=[

'requests',

'requests_negotiate_sspi',

'wincertstore',

'click'

],

extras_require={

'test':test_requirements

}

)

发布.py

import logging

import click

@click.group()

def tests():

return 0

@tests.command()

@click.argument("endpoint")

@click.argument("results_path")

@click.option("--format", "-i", type=click.Choice("nunit", "junit"), required=True)

@click.option("--logging_level", "-l", type=click.Choice(logging.INFO, logging.DEBUG), default=logging.INFO, show_default=True)

def find(endpoint, results_path, format, logging_level):

logging.basicConfig(level=logging_level)

logging.info("Hello, friend")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值