美文网首页
Python项目迁移相关

Python项目迁移相关

作者: 学无止境也 | 来源:发表于2020-08-21 18:35 被阅读0次

网上其他人给出的答案

https://www.jianshu.com/p/7530c2401273

需求:电脑A的项目迁移到电脑B

  • 步骤1:在电脑A项目的terminal中导出需要的包及版本,命令为pip freeze >requirements.txt,如图
    pycharm中导出包信息
  • 步骤2:电脑B中创建项目及虚拟环境,把requirements.txt文件复制到项目文件夹下,运行命令pip install -r requirements.txt,如图
    安装包
  • 步骤3:把电脑A中的项目文件复制到电脑B的项目中。

出现的问题

本人按照上面的方法从来没成功过,也踩了不少坑。一般都是卡在上面的步骤2中,即电脑A导出的包信息根本不能在电脑B上成功安装。错误类型包括:
1、找不到指定版本的包;
2、安装时timeout问题;
3、。。。等

先说找不到指定版本的包,原因可能是电脑B上的Python版本就没有与之对应的requirements.txt中指定包的版本,这一般发生在电脑B和电脑A的Python版本不一致的情况下。例如,电脑A的Python版本为3.6.6,而电脑B的项目中用了Python 3.8,然后我们需要安装TensorFlow 1.12.0,这时就会出现上面的情况。那么为什么在Python 3.8版本下不能安装TensorFlow 1.12.0呢?这个问题的答案可以从国内Python镜像库,例如https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow/
找到:

image.png
由上面的图可以看到,cp36代表适用于Python 3.6的意思,我们发现,TensorFlow 1.12.0版本就没有适配Python 3.8版本的。所以我们在Python 3.8中安装TensorFlow 1.12.0会提示找不到对应的版本。

上面只是列举了一种情况。有时电脑A和电脑B的Python版本一致,比如都是Python 3.6.6,但还是会提示个别包找不到对应的版本。具体原因不详,我也没有继续研究。

关于pip安装包时出现的timeout问题,网上也有解决方案。

总而言之,用pip install -r requirements.txt命令还没成功过。

关于虚拟环境venv

最直接的想法是,我们能不能把直接把电脑A中的venv也直接复制到电脑B的项目中呢?答案是肯定的。

电脑B中安装和电脑A中相同版本的Python,然后把电脑A中的项目可以整个复制到电脑B,或者只复制venv和需要的项目文件,然后pycharm中设置项目的interpreter为项目路径中的python.exe,一般位于项目的\venv\Scripts\目录下。如图:

image.png

上面操作完成后,有时会出现ValueError: failed to parse CPython sys.version: '3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)]'错误,如图:

image.png
错误的原因就在于_sys_version_parser函数没能成功解析出python的版本,如图:
image.png
image.png
可以看到,_sys_version_parser函数解析了version,build info,build date,time,compiler信息,但是没有考虑|Anaconda, Inc.|(这个信息也出现了错误信息里),所以需要加入r'(?:\|[^|]*\|)*\s*'命令去掉|Anaconda xxx|,修改如下:
image.png
参考:https://blog.csdn.net/piaoxue1949/article/details/80295385

相关文章

  • Python项目迁移相关

    网上其他人给出的答案 如https://www.jianshu.com/p/7530c2401273 需求:电脑A...

  • 过去发过的文章集合

    博客打算迁移。迁移原因以下是过去在简书发过的文章备份。 tig 命令快捷键功能翻译 Python 时间相关函数速...

  • Django-Nginx-uwsgi

    在开发环境下调试好python项目之后,把项目迁移到nginx上面 首先把django admin的静态文件目录复...

  • 京东面试

    二面 项目相关 项目相关,提到水平分表2.怎么进行分表,是否存在数据迁移的问题3.怎么进行跨表查询(ES+hash...

  • django (1050, "Table 'django_con

    django项目在执行python manage.py migrate 进行表迁移时报错 错误信息:django....

  • Python 3之潜藏的利器

    在 python 3 推出后,人们开始逐步将基于Python 2 的代码迁移至Python 3 。但在迁移过程中,...

  • SpringBoot中MyBatis的TypeHandler相关

    迁移之前的老项目的时候,老项目中使用了一些MyBatis的TypeHandler相关的东西。但是老项目并非写在ma...

  • SpringBoot整合Ehcache3

    前言 公司部门老项目要迁移升级java版本,需要进行缓存相关操作,原框架未支持这部分,经过调研java相关缓存方案...

  • antd+typescript webpack打包后样式丢失

    问题描述 最近笔者最近正在将老的项目迁移至typeseript,项目跑起来之后发现antd相关的样式全部丢失,发现...

  • Python_项目迁移便捷方法

    python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新...

网友评论

      本文标题:Python项目迁移相关

      本文链接:https://www.haomeiwen.com/subject/uyhpjktx.html