Pipenv最新一代Python项目环境与依赖管理工具
Pipenv是一个工具,旨在将所有打包世界(bundler、composer、npm、cargo、yarn 等)中最好的东西带到 Python 世界。在我们的世界中,Windows 是一等公民。
它会自动为您的项目创建和管理 virtualenv,并Pipfile在您安装/卸载软件包时从您的项目中添加/删除软件包。它还生成Pipfile.lock用于生成确定性构建的 ever-important 。
Pipenv 主要旨在为应用程序的用户和开发人员提供一种设置工作环境的简单方法。
Pipenv 寻求解决的问题是多方面的:
- 您不再需要单独使用pip和virtualenv。他们一起工作。
- 管理requirements.txt文件可能会有问题,因此 Pipenv 使用* * Pipfile并将Pipfile.lock抽象依赖声明与上次测试的组合分开。
- 哈希值无处不在,总是如此。安全。自动暴露安全漏洞。
- 强烈鼓励使用最新版本的依赖项,以尽量减少过时组件带来的安全风险。
- 让您深入了解您的依赖关系图(例如)。$ pipenv graph
- 通过加载.env文件简化开发工作流程。
安装
如果您已经拥有 Python 和 pip,您可以轻松地将 Pipenv 安装到您的主目录中:
1 | $ pip install pipenv |
创建虚拟环境
1 | $ cd your_project_dir |
激活虚拟环境
1 | pipenv shell |
安装依赖到虚拟环境
1 | $ pipenv install Scrapy |
记录依赖
使用Pipenv时,什么都不必做,Pipenv会自动帮你管理依赖。Pipenv会在你创建虚拟环境时自动创建Pipfile和Pipfile.lock文件(如果不存在),并且会在你使用pipenv install和pipenv uninstall命令安装和卸载包时自动更新Pipfile和Pipfile.lock。
在部署环境安装依赖
使用Pipenv则只需要执行pipenv install,它会自动安装Pipfile中记录的依赖:
1 | $ pipenv install |
参考链接
- Virtualenv简易教程,by jackhuang.
- 最全的Python虚拟环境使用方法,by Stevent.
- Pipenv:新一代Python项目环境与依赖管理工具,by 李辉.
- Python 修改 pip 源为国内源,by 花晓星辰.
- pip安装包时出现 ValueError: check_hostname requires server_hostname 错误,by 胡小包.
- pyenv install build failed:Fatal: You must get working getaddrinfo() function.,by Honcy Ye.
搜索算法集锦
记录各种经典的搜索算法。
Dijkstra算法
该算法解决了图 ${\displaystyle G=\langle V,E\rangle }$上带权的单源最短路径问题。
A*搜索算法
A搜索算法(A search algorithm)是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或网络游戏的BOT的移动计算上。
该算法综合了BFS和Dijkstra算法的优点:在进行启发式搜索提高算法效率的同时,可以保证找到一条最优路径(基于评估函数)。
RRT*搜索算法
基于随机采样的路径规划算法。这类算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。
参考链接
- Dijkstra算法,by wikipedia.
- A*搜索算法,by wikipedia.
- 路径规划 | 图搜索算法:DFS、BFS、GBFS、Dijkstra、A*,by 鬼木士.
- 路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*,by 鬼木士.
- 全局路径规划:图搜索算法介绍4(RRT/RRT*),by gophae.
空战战术集锦
参考链接
- 超视距空战初探,by 殇璃魂.
- 战争雷霆空战入门进阶教程 空战机动战术详解【1】,by 大眼小乌贼.
- 超视距空战的发展及其局限性,by 新浪军事.
- 击剑云端——现代超视距空战基本动作详解,by 万年炎帝.
- 不懂这些基本的战机作战技能,别说你是空战迷!,by 军武.
科技论文写作技巧
科技论文文本结构通常由标题、作者、摘要、关键词、引言、方法、结果、讨论、结论等部分组成。下面总结记录各部分写作方法。
参考文献
- 科技论文,by 百度百科.
- 科技论文的引言怎么写 ,by PaperPP论文查重.
- 论文中Conclusion写作的几大要点,附有实例指导、写作模板,by 美辑编译.
- 科技论文的结论如何写作?,by 第2导师.
- 编辑视角下,论文摘要、引言、结论怎么写?,by qq.
Windows下OsgEarth编译安装过程
记录Windows下osgEarth编译安装过程。
安装vcpkg
首先,请下载vcpkg并执行 bootstrap.bat 脚本。
1 | > git clone https://github.com/microsoft/vcpkg |
使用以下命令安装您的项目所需要的库:
1 | > .\vcpkg\vcpkg install [packages to install] |
您也可以使用 search
子命令来查找vcpkg中集成的库:
1 | > .\vcpkg\vcpkg search [search term] |
若您希望在 Visual Studio 中使用vcpkg,请运行以下命令 (首次启动需要管理员权限)
1 | > .\vcpkg\vcpkg integrate install |
若您希望在 Visual Studio 中卸载vcpkg,请运行以下命令 (首次启动需要管理员权限)
1 | > .\vcpkg\vcpkg integrate remove |
卸载vcpkg只需删除vcpkg的文件夹即可。
使用vcpkg安装osgEarth
使用如下命令安装osgEarth:
1 | vcpkg install osgearth:x64-windows |
经验证,使用vs2015编译安装osgEarth的依赖项blend2d失败,因blend2d不支持vs2015编译器。因此只能自己编译安装osgearth。
编译前准备
使用vcpkg安装osg、gdal、curl。
1 | vcpkg install osg:x64-windows gdal:x64-windows curl:x64-windows。 |
编译安装osgEarth
使用cmake编译安装osgEarth。
1 | cd I:\project |
设置运行时环境
1 | set PATH=%PATH%;c:\vcpkg\installed\x64-windows\bin |
参考链接
- osgearth编译全过程,by jianingshow.
- Building osgEarth,by osgEarth.
- Windows下QT与OSG开发环境配置,by jackhuang.
- 安装GDAL配置到VS2017的艰难之路(避坑之作),by Icesrteam.
- VS2017编译GDAL常见问题,by 一个渣渣的世界.
- 使用OSGeo4W安装配置QGIS,by Test_hh112.
- windows10 环境中安装GDAL及其python绑定,by 蔚蓝小栈.
- [工具]包管理工具Vcpkg 的使用,by 南象.
- 如何看待 Windows 的 C++ 包管理器 vcpkg?,by zhihu.
- win10 + vs2017 + vcpkg —— VC++ 打包工具,by 一花一世界,一叶一乾坤.
- osgEarth基础入门,by sunliming.
- Visual Studio工具 vcpkg簡介,by itread01.
- How to remove vcpkg and all libraries installed with vcpkg,by stackoverflow.
- Visual Studio开源库集成器Vcpkg全教程–利用Vcpkg轻松集成开源第三方库,by 明卿.
- Build failed with vs2015,by blend2d.
- Build Instructions for blend2d,by blend2d.
- window10系统中,vcpkg使用到opengl(编译MVG)库时提示Error: Building package * failed with: BUILD_FAILED,by 知识在于分享.
- OsgEarth 2.x升级到3.1注意事项,by 孙高勇.
expressjs的PayloadTooLargeError错误的解决办法
本文介绍Nodejs的Expressjs服务器出现PayloadTooLargeError错误的解决办法。
问题表现
当使用HTTP Put方法携带大量数据时前端会触发超时错误。
问题分析
在app.js中建立并使用应用级别的中间件函数,用于捕捉PayloadTooLargeError错误。
1 | app.use(function (req, res, next) { |
问题解决
nodejs 做为服务器,在传输内容或者上传文件时,系统默认大小为100kb,这时,我们需要修改系统限制。我们在app.js中调用接口和对应方法中,加入对应参数即可:
1 | var bodyParser = require('body-parser'); |
参考链接
pytorch学习笔记
PyTorch 是基于以下两个目的而打造的python科学计算框架:
- 无缝替换NumPy,并且通过利用GPU的算力来实现神经网络的加速。
- 通过自动微分机制,来让神经网络的实现变得更加容易。
参考链接
- pytorch教程之nn.Module类详解——使用Module类来自定义模型,by LoveMIss-Y.
- PyTorch 中文教程,by apachecn.
- torch.distributions 详解,by Vic_Hao.
- What does log_prob do?,by stackoverflow.
- VAE中的重参数化技巧-reparameterization trick,by Weibo Mao.
重要性采样与重参数理解
重要性采样与重参数是深度强化学习算法中常用的统计学技巧,比较难理解,遂将一些解读记录如下。
重要性采样
重参数
利用行为策略产生的数据评估目标策略需要利用重要性采样方法。
参考链接
- 漫谈重参数:从正态分布到Gumbel Softmax,by 苏剑林.
- 重要性采样(Importance Sampling)详细学习笔记,by hehedadaq.
- PR Sampling Ⅰ: 蒙特卡洛采样、重要性采样及python实现,by 刘浚嘉.
gym使用帮助
Gym 是一个用于开发和比较强化学习算法的工具包。 它支持从步行到玩 Pong 或 Pinball 等游戏的代理的训练工作。
安装
从库安装:
1 | pip install gym |
从源安装:
1 | git clone https://github.com/openai/gym |
环境
1 | import gym |
参考链接
- gym doc,by openai.
- OpenAI Gym 经典控制环境介绍——CartPole(倒立摆,by 思绪无限.
- Beginner’s Guide to Custom Environments in OpenAI’s Gym,by Mate Pocs.
- Solving OpenAI Gym Environments with MATLAB RL Toolbox,by Paulo Carvalho.