【Python】【Conda】【Pip】conda和pip管理工具,如何统一仓库地址

504 阅读4分钟

一、问题

1.1、环境 ①、操作系统:Windows 10; ②、开发工具:

PyCharm 2021.1.3 (Community Edition) Build #PC-211.7628.24, built on June 30, 2021 Runtime version: 11.0.11+9-b1341.60 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 2034M Cores: 8 Non-Bundled Plugins: Batch Scripts Support (1.0.12), CMD Support (1.0.5), com.carbonblack.intellij.rpmspec (1.2.0), com.intellij.plugins.eclipsekeymap (203.5981.152), com.jetbrains.nim (1.4.0-203), com.jetbrains.plugins.ini4idea (211.6693.44), com.leinardi.pycharm.mypy (0.11.2)

③、数据库环境:

Navicat for mysql 11.0.10 Mysql :8.0.18

④、Python 环境: 3.5.4;

1.2、问题

C:\Users\86186>D:\pythonProject\predict3.5.4\core\dist\predict_amount.exe
Traceback (most recent call last):
  File "core\predict_amount.py", line 10, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\api.py", line 5, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\iolib\__init__.py", line 1, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\iolib\foreign.py", line 14, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\compat\__init__.py", line 1, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\tools\__init__.py", line 1, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\statsmodels\tools\tools.py", line 6, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\pandas\__init__.py", line 22, in <module>
  File "d:\pythonproject\predict3.5.4\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\pandas\compat\numpy\__init__.py", line 25, in <module>
ImportError: this version of pandas is incompatible with numpy < 1.13.3
your numpy version is 1.13.1.
Please upgrade numpy to >= 1.13.3 to use this pandas version
Failed to execute script predict_amount

C:\Users\86186>conda list numpy
# packages in environment at D:\software\anaconda3_202105x86_64:
#
# Name                    Version                   Build  Channel
numpy                     1.20.3           py38ha4e8547_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
numpy-base                1.20.3           py38hc2deb75_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
numpydoc                  1.1.0              pyhd3eb1b0_1    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

C:\Users\86186>

明明使用conda升级了numpy,为什么这里还是会报错?

Please upgrade numpy to >= 1.13.3 to use this pandas version

二、解答

1、首先除了用conda list numpy

查看numpy的版本,我们还用pycharm中的包管理,来查看,点击 【File】-【Project predict3.5.4】-【Python Interpreter】然后直接用键盘输入【numpy】,这里里面会自动筛选左侧筛选的Package(包,或者叫库)。这里看到,确实是已经升级了,但是我们打包生产的exe文件中,还是小鱼1.13.1版本的。为什么? 在这里插入图片描述 2、我们用pip命令查看下当前的包

pip list

可以看到,pip的包下,numpy 包的版本还是1.13.1。所以,目前为止,我们能得出一个结论,那就是conda 和pip 两套管理包的工具,不是同步的,共享仓库的。而是分裂的,隔离的。首先,我们先解决问题,先将pip 在这里插入图片描述 3、二者有什么区别 这里其实有 pip只为python做包管理,但是conda除了python,还可以给别的语言,例如 做【包管理】和【环境管理】。这两个不一样。【包管理】就是,你在我这里存什么,你要的时候,我就给你拿什么。【环境管理】不光你在我这里存什么,后面你要的时候,我给你什么,并且,我把东西分类,按照项目分类。A项目的包用A环境,B项目的包,用B环境。包之间不会互相干扰,不然A,B都共用包,则A,B项目部署的时候,会将大量无用的包都部署起来,浪费了。具体的,可以看这里

4、统一仓库 这里我们讲conda管理包的地址改成和pip一样的。不然我们各自为政。虽然我引进了新的管理工具,但是pip还守着自己的那部分东西,不让我管理,这可不行。统一管理。 这里我们将conda的管理地址设为和pip一样的。 打开cmd命令行,输入

python -m site -help

至于为什么是site,你可以理解为补给站吧,跟maven的仓库(repository)一样 然后找到第一行的打印的D:\software\python3.5.4\lib\site.py这个文件,修改文件中的仓库地址。 在这里插入图片描述

修改之前的截图 在这里插入图片描述 修改之后的截图 在这里插入图片描述 4、检验 我们关掉cmd窗口(或者Pycharm的Terminal,或者Python的Anaconda Powershell Prompt),因为这些cmd交互命令窗口,不一定会实时刷新你的修改,但是每次打开的时候,会重新读取配置文件。为了防止缓存,我们关闭原来的cmd窗口,重新输入pip list 或者 conda list numpy,发现numpy是最新的了。

完毕~

三、总结

承接项目开发(电商,金融,直播,大数据算法,机器学习,深度学习等互联网开发项目),承接外包等互联网业务~

欢迎关注我的

CSDN博客blog.csdn.net/River_Conti…

微信公众号:幕桥社区

知乎:张牧野, www.zhihu.com/people/zhan…

简书www.jianshu.com/u/02c0096cb…

参考资料:

www.zhihu.com/question/39… blog.csdn.net/tsq29297889… www.cnpython.com/qa/202243 www.pianshen.com/article/348… www.cnblogs.com/jacen789/p/… www.zhihu.com/search?type…