博文

通过网络远程共享USB设备

图片
如何在一个设备上使用另一个设备上的USB设备? 为什么会有这个需求? 比如银行常常会提供一个USB加密狗,只有插上加密狗才能正常使用网银。某些公司为了资料安全,也会使用这样的加密狗。通过远程USB,就能安全地共享加密狗。我个人的主要需求是,我的mac无法识别CC3200物联网开发板,可能是ARM mac原因。所以为了用这块开发板,我需要把它远程USB连接到我的Windows台式上。 需要准备什么东西? 两台电脑,一台是本地物理连接USB设备的,另一台是通过网络使用这个USB设备的。两台电脑的系统任意, Windows,Linux,macOS都行。 一台拥有公网IP的服务器,用于内网穿透。 内网穿透是什么?怎么配置? 参见我的另一篇博客, 如何DIY云游戏 一文。我使用frp进行内网穿透,它开源免费轻量。关于它网上有很多教程,我就不赘述了。简单的说,内网穿透的作用是让本地电脑拥有公网IP,这样就可以作为服务器使用。 通过网络共享USB设备 我使用的是 USB-Over_Network 这个软件。它是一个收费软件,但是提供可以连接1个USB设备的免费试用版,有15天的试用时间。如果你恰好财力雄厚,请 购买正版 ($149起),我就不在这里提供“学习版”了。 如何使用呢?按理说只要跟着官方文档做就行了,但我有一句“你也配叫文档”不知当讲不当讲。根本没有明确的操作指导,甚至会有错误的指引。比如 命令行文档 中提到的 shareport 参数根本就不存在。所以得靠软件本身带的(没有详细解释的)help摸索。很糟糕。 它的软件分为服务端和客户端两个版本,请到 官方下载页面 下载。其中服务端是物理插着USB设备的那台电脑,客户端则是远程使用这个USB设备的电脑,和远程桌面的服务-客户端刚好反过来。因此,你需要在本地电脑安装服务端软件,在远程电脑上安装客户端软件。值得一提的是,macOS上只有服务端软件,也就是说它只能共享USB给别人,但不能用别人共享的USB设备。并且,macOS的服务端是没有UI界面的,点击launchpad中的图标只会出现一个信息窗口。其他平台是有图形界面的。 macOS上点击USB over Network图标之后出现的信息窗口 它的原理是服务端在某一个端口上启动USB共享,然后客户端连接到这个端口上,就可以通过TCP传输USB数据了。 在macOS上,我们...

搭建你自己的“云游戏”

1小时搭建游戏远程串流,你专属的“云游戏” 本文将会介绍如何利用云服务器打造自己的云游戏服务。你需要: 一台云服务器(本文会介绍配置要点) 一台实际运行游戏的PC,必须使用Nvidia显卡(A卡还真不行,至于Intel显卡用户……等等,你应该不会用Intel核显玩游戏吧?) 熟悉基本Linux系统操作 为什么要自建远程串流? 如果你有一台性能强劲的台式机,或者性能强劲的游戏本(但是很重不想带出门),那么在外玩游戏串流游玩就是不错的选择。在国外,有微软的xCloud、Google的Stadia、英伟达的Geforce Now等众多云游戏平台,但国内的选择寥寥无几,能游玩的游戏也是少得可怜。因此,自建游戏串流就成了一个有吸引力的选择。本文将教会你如何使用frp和Moonlight实现远程串流。如果你只想局域网串流,请直接翻到“配置Moonlight串流”部分。 延迟如何? 40ms。这是我自己配置的结果(5G网络下)。这已经和主流电视的响应速度差不多了。虽然和显示器的10ms仍有差距,但已经在可接受的范围内了。 如何选择云服务器? 对我们的需求而言,服务器的性能、内存大小、磁盘速度和容量等都无关紧要。我们需要关注的有两个:地理位置和网络带宽。其中地理位置决定延迟,带宽决定串流画质。 地理位置推荐选择尽可能离自己近的区域。例如,我在杭州,就首选杭州的云服务器。如果云服务厂商没有杭州数据中心,那就选物理位置上海的云服务器。离你越近,延迟就越低。这主要倒不是因为光信号传输需要时间,而是距离越远,网络信号就会经历越多的交换机,导致延迟增高。 网络带宽能有多高就选多高,最高不超过运行游戏的主机的上传带宽。不过,你会发现云服务器的网络带宽费用高得离谱,1Mbps一年就要100元以上。就算按量计费,以华为云收费标准为例,1GB要收0.8元,如果以50Mbps码率完一小时游戏,就要花掉17块钱,仍然算不上便宜。所以,这时候如果你正好有学校送的大额抵扣券,就很划算了。你可以根据自己需求选择合适带宽: 720P 30fps 至少5Mbps带宽(能玩就成) 720P 60fps 至少8Mbps带宽(糊是糊了点,但好歹还挺流畅的) 1080P 30fps 至少8Mbps带宽(清晰倒还挺清晰的,就是这主机级帧率有些难受) 1080P 60fps 至少15Mbps带宽(挺舒服的,在手机平板上玩已经...

Linux Tips For Beginners

Linux Tips that you regret not knowing earlier... Configure Linux password-less login Add your public key to ~/.ssh/authorized_keys . To get a public key, simply execute the ssh-keygen command, then you'll find your public key and private key in ~/.ssh The public key is used to encrypt your data, and only the corresponding private key can decrypt that data. Save printed text There're two ways to accomplish this. Use the tee command The tee command redirects stdout to a given file as well as print those text to the screen. usage: ls | tee <path/to/output/file> The | symbol is used to redirect the output of the command before it to the command after it. Use the > or >> symbol to redirect output usage: ls > out.txt > overwrites existing file, while >> append new content to existing file. Refresh command every 1 second Let's say you want to refresh the nvidia-smi command every second, you can simply type watch -n 1 nvidia-smi You can also cha...

那些相见恨晚的 Windows 技巧

我多年的总结记录的 Windows 技巧们,今天一并托出~ 软链接与硬链接 用途 同一个文件/目录,让它出现在两个目录下面,可能吗?真有可能!通过软链接或者硬链接,你就可以做到。这和快捷方式不同,程序们会把快捷方式看作是快捷方式,而把软链接与硬链接看作是真正的文件或目录——就像它真的在那里一样。 可以利用这一点做很多事情,举例如下: 把硬盘别处的文件夹,甚至是另一块硬盘上的文件夹,用软链接放到Onedrive目录下面,达到让OneDrive同步OneDrive目录外文件的效果。(因为OneDrive真诚地以为软链接的目录就在OneDrive目录下面) Epic送了GTA5,不想再下载一遍,怎么办?把Steam下载的GTA5文件软连接到Epic库下面,达到两个平台共用同一个游戏文件的效果。 用法 再 CMD (命令提示符)里执行以下命令( Powershell 还真不行): MKLINK [[/D] | [/H] | [/J]] <Link> <Target> []方括号代表可选参数 /D 创建目录软链接。默认为文件软链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。 < Link > 指定新的符号链接名称。(新链接的路径,最好用引号括起来) < Target > 指定新链接引用的路径 (源文件的路径) 例如,在当前目录下创建位置在 C:\foo.txt 的文本文件的软链接,应该这么写: MKLINK C:\foo.txt any.txt 软链接类似于给文件或文件夹一个快捷方式,但程序会把它当成真正的文件或文件夹。软连接不占用存储空间,删除它对目标文件没有影响。如果替换目标文件,软连接会指向新的目标文件。软链接由文件系统维护。 硬连接与软链接类似,但它是目标文件的另一个路径。也就是说,对硬链接的修改会影响所有的硬链接。只有删除一个文件所有的硬链接,它才会被彻底删除。硬链接只能用于文件,不能用于文件夹。硬链接由Windows维护。 查看电脑配置 用法 win R 呼出运行窗口,输入 dxdiag ,回车即可。这是DirextX的诊断工具,会详细列出电脑配置。 查看本机IP 用法 在PowerShell中输入 ipconfig 即可。注意要找到正在使用的网卡,通常只要去掉 vEthernet 之类的虚拟网卡就行了。...

如何解决Windows 不自动给磁盘分配盘符的问题

解决Windows 不自动给磁盘分配盘符的问题 症状 移动硬盘插入后Windows没有任何反应,但是可以在磁盘管理里手动分配驱动器号(盘符),分配后使用正常。插入Linux系统可以直接使用。 解决方案 下载 傲梅分区助手 ,然后选中磁盘(注意不是分区),在左边的功能区选择擦除磁盘,填充默认即可。然后在软件左上角选择执行,执行中途可以直接取消退出。这时再进入分区助手给磁盘分区,这时移动硬盘就能正常自动挂载了。 (我没有验证以上步骤是否必需,或者有更优雅的方案,但——it works!) 缓解方案 v2EX的一篇帖子 指出了一种方式,但是按这个方法会在最后 attributes volume clear hidden 的时候报错“函数不正确”,我在 微软的旧Windows论坛上的一篇帖子 里找到了另一个解决方案,但也被证明是不管用的: 启动管理员模式的powershell,如果是Windows 11,就是启动管理员模式的Windows Terminal(其实是一回事儿),然后输入CMD进入CMD。这是因为在Windows 10和11里已经不能直接使用管理员模式的CMD了。 输入 diskpart ,进入diskpart(磁盘分区)命令行工具。 列出磁盘: list disk 选择你想取消隐藏状态的磁盘: select disk <磁盘号> 列出分区: list part 选择分区: select part <分区号> 查看分区状态: detail part ,可以看到最后一列的“信息”赫然写着已隐藏。 取消隐藏状态: set id=07 。隐藏分区通常的id是27,而如果id为07就是正常的NTFS磁盘。 应用修改: assign 。这里没有指定驱动器号,系统会自动分配下一个字母。 退出diskpart工具: exit 完整的终端操作: DISKPART> list disk 磁盘 ### 状态 大小 可用 Dyn Gpt -------- ------------- ------- ------- --- --- 磁盘 0 联机 931 GB 2048 KB * 磁盘 1 联机 2794 GB...

如何在Windows 11上安装Xilinx 14.7 System Edition

图片
感谢微软的胶水战略,感谢 Windows 11。 缘起 也许有人会想,不过是装个软件而已,值得写一篇文章吗?但是,Xilinx的这个软件,还真不好装。如果你下载了老师给的正统的Xilinx ISE 14.7,安装,你会发现安装软件时会卡在大约80%进度,再也进行不下去。如果你想要碰碰运气,可以去Xilinx的 官方下载中心 下载ISE 14.7(不是那个“Windows 10”版)。 下载中心 我的朋友尝试了不下六次,试了各种各样的方法: 去除Xilinx安装路径中的所有中文字符 去除Xilinx安装包所在路径中的所有中文字符 使用Windows 7兼容模式 使用Windows XP兼容模式 再试一次 但都徒劳无功。所以,使用正统安装方法,走不通。接下来,我们要尝试一些“歪门邪道”。 “Windows 10版” 访问塞林斯官网,我发现老师给的版本上次更新日期是2013年。好家伙,这不能在最新版Win10/11上运行,好像还蛮合理的。 但是,塞林斯提供了一个 Windows 10版 ,并且容量高达15GB。既然名字里都写了Windows 10,总归运行没问题了吧?事实也的确如此,但塞林斯实现兼容Windows 10 的方式却大大出乎了我的预料。 执行安装程序,它报错了。是的,在那个80%卡住的进度条出现之前的步骤里,它就报错了。不过,我发现它的报错信息里提到了 VBOX ,既然如此,会不是因为我没有安装VBOX导致的呢?安装了VBOX之后,果然安装程序就不报错了,很顺利就安装完了。 然而!当我满心欢喜地双击桌面上的快捷方式,居然出现了一个VBOX窗口??!!我目瞪口呆地看着一个Redhat Linux虚拟机徐徐启动,然后再这个虚拟机里打开了Xilinx ISE。实在没想到,兼容Windows 10居然是这个意思。技术上讲,这 的确 让Xilinx ISE软件运行在了Win10上。 毫无疑问,这是史上最离谱的兼容性解决方案。毫无疑问,这种方案无法让人接受。真™有你的,塞林斯! 曙光 到这里,似乎已经山穷水尽了。然而,ISE能运行再Linux上这一点,却给了我启发。 Windows 10/11 有WSL功能,它可以让Linux以子系统的方式运行在Windows上。在Windows 11上,还支持 WSLg ,支持窗口化运行Linux GUI应用程序。 就像这样 就像这样。...

用Windows Terminal打造现代化终端

图片
不用丑丑的PuTTY,不用收费的XShell,用Windows Terminal和Open SSH,就能打造现代化的Windows终端体验——不亚于Linux和mac OS.  Windows Terminal是啥? 这是微软推出的现代化终端模拟器,支持平滑字体渲染、GPU加速、多标签页等现代化功能,甚至还支持emoji😎。最重要的是,它——完全免费!关于它可以写一整篇文章,这里就不赘述了,你只需要知道:它是Windows 10/11 上最好用的终端模拟器。 Windows Terminal 运行在 Windows 11 上 如何获取它呢?其实很简单:打开你从来没用过的Microsoft Store——搜索Windows Terminal——安装即可!Windows 11已经预装了它,并且是系统的默认终端,无需任何操作。 Open SSH是啥? Open SSH是SSH的开源实现,使用它,我们就可以连接到远程计算机啦。Windows 10开始,系统自带了Open SSH,不过默认没有安装,在系统设置的 可选功能 里可以安装。 我已经安装了OpenSSH 首先,要有一台云服务器…… 要连接到云服务器,首先你得有一台云服务器……咳咳,这是废话。现在正值双十一,许多云服务器服务商都提供了不错的优惠。比如腾讯云,不愧被称为“良心云”的存在,2 CPU 核心,4 GB 内存,8M带宽(有1.2TB的每月流量限制),80 GB SSD 的服务器,仅需 74 元每年,实在很香啊。 我在阿里云花99/年买了1C2G5M40GB的服务器……三年。好亏啊 购买时,会要求选择服务器所在地区,我建议选择离你物理距离最近的区域。比如我在杭州,就选择了上海。至于服务器系统,这个根据自己需求选择,如果你不知道选什么,我建议选择Ubuntu 20.04 LTS。 此外,甲骨文白嫖2台永久免费服务器的活动仍然在持续,详情可以看 我写的教程 。 然后,获取私钥 什么是私钥?简单的说,在非对称加密中,加密和解密用的是不同的密钥。用来加密的那个称为公钥,用来解密的那个称为私钥。 绝对不要泄露你的私钥 。 以腾讯云为例,进入轻量应用服务器管理后台(入口在顶部tab栏的“云产品”里),左边的导航条中就有密钥管理的选项。 我已经创建了一个密钥 点击“创建密钥”,地区就选择服务器所在地区。密钥名称建议填...

解决CMD [已退出进程,代码为 1]的问题

图片
解决CMD闪退问题 问题描述 无法使用CMD,无论是在powershell里输cmd命令,还是使用“运行”对话框,CMD都会闪退。 解决方法 中文内容啥都搜不到,全是一堆机翻的垃圾网站。最后在StackOverflow上找到了 解决方案 ,如下: 打开注册表编辑器(Win + R,输入regedit),然后在地址栏输入 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\ 进入的页面不应该有任何值,如果有,右键删除之。最后,应该看起来像这样: 干净的注册表页面 试试运行CMD,现在应该没问题了ヾ(≧▽≦*)o

Upgrade to Windows 11

图片
一篇帮助你不重装系统前提下升级到Win11的完全教程 不丢失文件,升级Win 11 Why Win11? Win 11昨天更新了新版本,又修复了一大堆问题,不过我们最关心的那个功能,也就是 运行安卓app 的功能,还是没有到来。 尽管如此,我还是很馋 Win 11 的各种新样式,在虚拟机里体验的效果终究不尽人意。所以,今天我终于下定决心把台式机升级到 Win 11。注意是升级,我并不想重装系统(环境配置起来好麻烦的),所以必须走 Windows预览体验计划 。 所以,答案是: why not? How? 首先,确认自己的电脑是否可以直接升级。打开Windows设置,转到“更新与安全>Windows预览体验计划”。很不幸,巨硬告诉我我的电脑不符合Win11的要求,无法升级。所以我们就要看看自己的电脑哪里出了问题。 巨硬官方推出过一个兼容性检查工具,但是那玩意提供的信息不明不白的,被骂得不行,以至于现在巨硬已经把它下架了。我们使用GitHub上的开源项目 WhyNotWin11 来检查兼容性,做得比巨硬好多了。huge thanks! 我的兼容性报告如下,可以看到有三项不符合要求。 我的第一次Win11兼容性检查结果 首先来讲讲TPM。这玩意干嘛的我就不多介绍了,我就讲讲开启方法。在BIOS里,TPM不叫TPM,对于Intel主板,叫Intel PTT,AMD则叫fTPM,选项通常在“BOOT”或者“BIOS”菜单下,改为开启状态即可。 然后,开启Secure Boot。但是,想要开启Secure Boot,就要将BIOS引导模式改为UEFI,但想要把BIOS引导模式改为UEFI,就得先把启动盘分区形式改为GPT。看到了吗?这三个环环相扣。 所以我们先转换启动盘分区形式。我推荐使用 傲梅分区助手 完成。真不是广告,这个软件是真良心,免费、好用、无广告,只是要求关注微信公众号而已。选中系统盘,右键,选择“转化为GPT硬盘”,然后在软件左上角提交更改即可。因为要更改系统盘分区形式,所以需要在Windows PE环境中进行。不过,别担心,这一切都是自动的,甚至不需要外接U盘。 但是,也有可能,软件会提示系统分区和引导分区不在同一块磁盘上,强行转化会导致系统无法启动,就像我碰到的那样。这时就不要继续转化了。去下载 Dism++ ,它的工具箱里有引导修复工具,用该工具修复C...

解决Conda报错“C:/Program”不是命令

环境变量不能乱配 症状是什么? 执行完 conda init 之后,一打开Power Shell,就提示报错,内容是“C:/Program”不是命令云云,查看内容是Conda的一个Powershell脚本里的报错。 此外,mysql命令也不能正常执行,因为似乎Powershell没能正确加载环境变量。 如何找到原因? 观察报错内容,发现提示 C:\Program Files (x86)\Tesseract-OCR\tessdata 云云,我发现,这不是我环境变量里的东西吗?! 引起报错的是这个和Java环境变量之间的一个双引号。 如何解决? 原来是 JAVA_HOME 环境变量配置的时候我给加了个双引号,像这样: "C:\Program Files\Java\jdk-16.0.1" 。去掉这个双引号就行了。 原理是什么? Java用着没问题,但这个双引号导致 Path 排在 %JAVA_HOME%\bin 后面的环境变量出现了问题。不过,这个似乎还和程序有关,比如Docker,mingw和nodejs就没有受到影响,但是Conda因为要用到Powershell脚本,就受到了影响。 Windows在编辑Path的时候会自动去掉路径的双引号,但是在编辑与Path同级的其他环境变量的时候则不会这么做。

设置 PowerShell 别名与参数别名

别名配得好,命令打得少~ 获取 PowerShell 配置文件路径 打开 PowerShell 配置文件 在 PowerShell 中输入 notepad $PROFILE 创建命令别名 格式: Set-Alias 目标命令 原命令

如何在VSCode中配置C++与Java开发环境||如何修复VSCode中Java的“错误:找不到或无法加载主类”错误

困扰我许久的问题,解决方案出乎意料的简单 如何修复VSCode中Java的“错误:找不到或无法加载主类”错误 之前有一段时间没写Java,结果没想到,这Java开发环境用着用着就坏掉了。原本点击右上角的运行图标就能编译运行Java程序,结果变成点击就显示 错误:找不到或无法加载主类 。 我尝试了许多方法:包括重新安装Java,重新安装Java插件,更新VSCode,以及调试 tasks.json 和 lauch.json 文件。都没用。这时,至少还能用 javac 和 java 命令手动编译运行,后来这也不行了。 那么!该如何解决这个问题呢?其实非常简单:VSCode的工作区文件放在 ~\AppData\AppData\Roaming\Code\User\workspaceStorage 下面。里面有一大堆随机字符串命名的文件,存储着你每一个工作区产生的一些临时文件,Java编译产生的class文件等,不重要,直接全选删除即可。 除了这样,我还把原本VSCode工作区里的.vscode文件夹删掉了,让它重新生成。这就到了本文的第二篇: 如何配置VSCode的C++和Java环境 以前用VSCode开发**C++**需要配置launch.json,配置MingW路径之类的。在搜索引擎搜索一下“如何在VSCode中配置C++开发环境”,有一大堆(抄来抄去)的教程,现在不需要了(当然,环境变量还是要添加一下的)。安装C++插件包后,直接在VSCode中按 F5 ,它会自动配置 launch.json 和 tasks.json ——开箱即用,就是这么简单。 而且这么做有个好处:按照网上教程配置好后,就算 externalConsole 设为 false ,还是会有丑陋且烦人的cmd窗口弹出来,这样自动配置的就可以正常使用VSCode内置终端。 至于 Java ,还是那么简单——安装完JDK、配置好环境变量之后,直接安装插件、点击右上角的运行按钮,就可以了。 有一个插件,叫 CodeRunner ,网上好多教程都推荐它。但是,它不能用来调试程序,实际上干的只不过是自动输入命令行命令的事情,还会有一些奇怪的配置问题。其实,它能做的VSCode以及官方插件都能很好地做到,完全没必要使用Code Runner。

快来领取甲骨文永久免费服务器

图片
免费主机,永久使用——这是什么精神?这是共产主义精神! 你需要一张支持Visa或Master Card的信用卡或借记卡来进行操作 什么样的服务器? 按理说,既然免费用,就不能挑食。即便如此,还是让我们瞅一眼甲骨文的“永久免费”(always free)档服务器是个什么姿势水平: 1颗AMD EPYC 7751核心 AMD的核心还是比较少见的,我以前用过的所有服务器都是英特尔的至强核心。7751以1结尾,代表核心架构是Zen 1。单核虽然不强,但也完全够用。 0.48 Gbps网络带宽 实测只有50Mbps。但是据说回国走的是CN2线路,电信和联通用户应该会快一些。可惜我是移动网络。 46 GB HDD磁盘 HDD确实慢了点哈,不过host一些小网站,以及魔法上网,还是不错的。空间算不上特别大,但做一点不是特别过分的离线下载之类的也还是问题不大。 1 GB内存 可选Ubuntu,CentOS,Oracle Linux 不知为何,甲骨文提供的官方映像种类特别少,只有这三个,没有我比较喜欢的Debian。由于Cent OS马上要停止维护了,而且甲骨文极力推荐自家的Oracle Linux,我就信了它的邪——长话短说,特别难用。yum不如apt好用,安装个nginx还要配置repo。配置也就算了,自带的软件源里居然没有nodejs,需要启用epel-release。启用吧,需要dnf命令(其实dnf才是应该拿来和apt比较的现代包管理器……)。而系统没有预装dnf,而安装dnf需要epel——看到问题没有?这是个套娃逻辑。花费了大量时间后,我还是无法正常安装epel或者dnf。于是,我乖乖滚回Ubuntu了。真好用。 值得一提的是,甲骨文没有提供重装系统功能,所以需要删除instance,再重新创建instance,这时才能选择系统版本,还挺折腾的。很有趣,我目前用过的云服务提供商里吗,谷歌云和甲骨文云都不提供重装系统选项,而搬瓦工、华为云是提供的,不是很明白为什么。按理说,以谷歌和甲骨文的实力,肯定是能做这个功能的。也许是用户隐私方面的考虑? neofetch输出 可见这个机器还是很香的。而且,甲骨文最多允许白嫖 两台 这样的服务器!两台!太良心了。一台作为生产环境,一台测试环境,岂不美哉? 如何白嫖? 很简单,访问 甲骨文的促销页面 ,点击“立即行动”,按说明一步步操作...

尝鲜GPT-2

传说中15亿参数的地表第二强(因为还有GPT-3)自然语言生成器的GPT-2,怎么使用?(其实也没那么“鲜”啦……因为这玩意已经是一年多以前的东西了(っ °Д °;)っ) 尝试官方演示 首先,用git下载OpenAI的开源代码。 git clone https://github.com/openai/gpt-2.git && cd gpt-2 然后配置环境。这里有非常多的坑,我碰到过各种各样的问题。以下是我在Windows 10 x64 20H2, Ryzen 2700X和Nvidia RTX 3070上成功运行的步骤。接下来会用到pip和Anaconda,请自行安装。conda虚拟环境的使用参考我的 这一篇文章 。 pip的源 和 conda 的源建议使用清华大学的镜像,比服务器在海外的默认镜像速度更快,也更稳定。并且清华大学的Anaconda镜像是经过Anaconda官方许可的。 首先,用conda创建一个虚拟环境。注意这里的Python版本,高了(比如3.8.5)不行,低了(比如3.6.8)也不行。 conda create -n gpt2 python=3.6.12 然后cd到gpt-2目录(也就是git clone下来的目录)里面, pip 安装所需的包。 pip install -r requirements.txt 但是这坑爹玩意requirements.txt里安装的软件版本居然有些是不对的,会导致运行时各种出错。所以我们需要手动安装正确的版本。依次执行: conda install tensorflow=1.13.1 pip install h5py==2.7.0 我们clone的文件中不包含模型文件,需要手动下载。下载速度即使在挂代理的情况下也还是很慢,而且容易中途断掉,所以……慢慢等吧。我的平均下载速度大约为1.3MiB/s。有四种大小的模型,最小的124百万数据量模型只有四百多兆,而最大的1558百万数据量模型有接近6GB。 python download_model.py 124M python download_model.py 355M python download_model.py 774M python download_model.py 1558M 下载好之后,就可以尝试运行啦!在那之前,打开 src 目录下的 ...

如何安装并使用Python虚拟环境

有两种虚拟环境可选,即 virtualenv 和 conda 。我的系统是Windows 10 x64。 virtualenv 安装 使用pip安装即可。 pip install virtualenv 创建虚拟环境 virtualenv VENVNAME --no-site-packages 参数能使 virtualenv 不会把主环境中已安装的包复制到新创建的虚拟环境中,但这早已成为virtualenv的默认设置,因此无需添加。 激活虚拟环境 与Linux不同,Windows没有 source 命令,直接输入路径即可。 .\your_env_dir\Scripts\activate 注意前面加上了 .\ 让Powershell执行文件,否则会报错找不到文件。如果不想每次输入 .\ ,可以在管理员Powershell中执行以下命令: Set-ExecutionPolicy RemoteSigned 看到路径前面出现括号,就说明成功了。 退出虚拟环境 deactivate 分析 virtualenv的原理是把系统Python和pip复制一份到虚拟环境目录,并临时把环境变量设为虚拟环境目录中的。这样在虚拟环境中安装的软件包都会在该目录内。virtualenv的作用效果是局部的。 但是这样还是新版的Python,新版Python(3.7及更新)与tensorflow 1.12不兼容。虽说也可以手动下载替换虚拟环境中的Python,但还是不太方便,所以最终我选择了大名鼎鼎的Python软件包管理器Anaconda3。 Anaconda3 安装 直接去Anaconda官网下载Windows安装程序即可,注意安装时有两个复选框,分别是添加Anaconda到PATH和将Anaconda Python 3.8设为默认Python,一定要勾上。 创建虚拟环境 Anaconda可以在创建虚拟环境时指定Python版本,这里我设为了Python 3.8.6。和virtualenv不同,Anaconda创建的虚拟环境在Anaconda安装目录下,因此不必先cd到心怡的目录。 conda create -n VENVNAME python=3.8.6 但是由于Anaconda的服务器在海外,速度非常慢。因此我们需要先修改它的网络配置,添加清华大学的镜像源,有需要时可以配置代理。用Notepa...

如何部署hexo到服务器

图片
为了部署hexo折腾了两天,期间不知道碰了多少次壁,遇到了许多诡异的问题,比如连接FTP前要先打开允许密码登陆等。这些问题网络上的hexo基本没有提到。网上的教程大多是使用github pages来搭建博客网站的,但是那样的话速度就比较慢,而且现在github.io由于GFW的缘故访问很不稳定,所以接下来我会介绍如何使用自己的服务器搭建hexo博客网站,并给出避坑指南。希望能对大家有帮助ヾ(≧▽≦*)o 配置服务端 安装、配置Nginx 我使用的服务器托管在甲骨文云( 免费服务器 真香~),系统是Ubuntu 20.04LTS,我的本地系统是Windows 11 x64。 系统预装了git和gcc,我们直接apt安装[^nginx]即可。apt安装的软件的配置文件都在 /etc/AppName下。 sudo apt install nginx 现在Ubuntu系统的防火墙会阻止我们访问网站,因此,你需要放行iptables端口: sudo apt update sudo apt install iptables sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT sudo iptables -save 这样设置的 iptables 会在重启之后失效,为了让 iptables 规则持久生效,安装 iptables-persistent 。 sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload 现在,直接访问服务器的IP,就可以看到Nginx的欢迎界面了! 我们需要一个存着所有网页文件网站目录。我们先新建一个目录。如果你已经有网页文件,放到里面即可。 mkdir -p /home/www/hexo 然后配置Nginx。Nginx可以在一台服务器上用同一个IP托管多个网站,其中 /etc/nginx/sites-available 中存储所有可用的网站配置文件,每一个配置文件对应一个网站。在 /etc/nginx/sites-enabled 中使用软链接指向 sites-av...