Pip在conda环境中安装本地包



我最近开发了一个软件包my_package,并在GitHub上托管它。为了便于安装和使用,我有以下setup.py:

from setuptools import setup
setup(name='my_package',
version='1.0',
description='My super cool package',
url='https://github.com/my_name/my_package',
packages=['my_package'],
python_requieres='3.9',
install_requires=[
'some_package==1.0.0'
])

现在我正在尝试在conda环境中安装这个包:

conda create --name myenv python=3.9
conda activate myenv 
pip install git+'https://github.com/my_name/my_package'

到目前为止一切顺利。如果我尝试在项目文件夹中使用它,一切都工作得很好。如果我尝试在项目文件夹外使用包(仍然在conda环境中),我会得到以下错误:ModuleNotFoundError: No module named 'my_package'

我在windows上工作,如果那重要的话。

编辑:

我正在验证python和pip都指向正确的版本:

which pip 
which python
/c/Anaconda3/envs/my_env/python
/c/Anaconda3/envs/my_env/Scripts/pip

同样,当我运行:

pip show my_package

我得到我的包的描述。所以pip找到它,但只要我尝试在脚本中import my_package,我就会得到所描述的错误。

我还验证了该包已安装在我的环境中。在/c/Anaconda3/envs/my_env/lib/site-packages中有一个文件夹my_package-1.0.dist-info/

进一步:python "import sys, print(sys.path)">

显示/c/Anaconda3/envs/my_env/lib/site-packages和其他路径。所以在路径。

检查是否在脚本中使用了一些指向其他Python解释器的显式shebang。

。使用系统默认的Python:

#!/bin/env python
...

在您的myenv环境中,尝试先卸载您的包,做一个干净的测试:

pip uninstall my_package

还有,你的setup.py: python_requieres——>python_requires .

我实际上试图安装你的setup.py,也得到了ModuleNotFoundError-但因为它没有正确安装由于install_requires:

ERROR: Could not find a version that satisfies the requirement some_package==1.0.0

所以,还要检查所有的安装都没有错误和警告。

希望对你有帮助。

首先我想指出的是(不是解决方案)关于你的以下陈述:

如果我尝试在项目文件夹中使用它[…]如果我尝试使用项目文件夹外的包[…]

我明白"项目文件夹"表示"my_package";文件夹(在git存储库中)。如果是这种情况,我想指出您混合了两种情况:测试(远程)包安装,而在(本地)存储库中。这不一定是错的,但很容易出错。

当测试一个包的设置/安装过程时,确保移动到远离存储库的地方(例如,"/tmp/"(相当于Windows),最好使用一个新鲜的环境。这将消除"噪音"。在你的测试中

  1. 我要告诉你做的第一件事——如果还没有——是创建一个新的conda环境,并从一个空/新文件夹安装你的包。例如,

    $ conda env create -n test_my_package ipython pip
    $ cd /tmp    # equivalent temporary or new in your Windows
    $ pip install git+https://github.com/my_name/my_package
    
  2. 如果这不起作用(可能是您的pip' git+http代码的问题),请使用另一种方法:为您的包创建一个发布(例如,"v1"),然后通过指示zip包URL(从您的"my_package"获取)安装发布的版本。发布页面(Github):

    $ pip install https://github.com/my_name/my_package/archive/v1.zip