热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nvmw安装,用于控制node版本;

之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好

之前一直使用的是node v2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;

上网一看才发现,尼玛的node已经到了6.+版本了,好吧,看来还是得跟上节奏;

但是呢,怎么更新node就成了个问题,卸载重装? 这样又会出现一些配置的麻烦;

经过一番查找发现:可以使用 nvm 管理不同版本的 node 与 npm;

nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmw 或 nvm-windows 。

接下来就记录一下我安装nvmw的具体过程和一些坑;(不要问我为什么选nvmw,因为穷叼不会用Mac,而-windows貌似有些问题)

 

百度了一早上,终于完成了node的升级,从头开始来吧,也整理了一下其中遇到的问题;
1、首先下载   nvmw https://github.com/hakobera/nvmw
方法:
git clone https://github.com/hakobera/nvmw.git;或者直接下载zip压缩包;

由于本人的git不知道抽什么疯,clone的时候一直出现nvmw安装,用于控制node版本;

如果有大神知道是什么问题,请评论留言;万分感谢;

 


2、配置环境变量
复制nvmw路径,我的电脑右键→属性→高级系统设置→高级→环境变量
这里我用户环境和系统环境都该了,照理说改系统环境就可以了;

nvmw安装,用于控制node版本;

 

这里有个坑,就是修改变量后要重新关闭CMD,重开一次,才能正常运用;


3、配置完后打开CMD,输入nvmw,如果正确配置的话可以查看帮助
百度的时候听说 nvmw install v6.9.2 无法安装成功;
我没试过,不过我用的是没有v的 nvmw install 6.9.2成功了;

nvmw安装,用于控制node版本;

 

4、不要高兴的太早,这才是刚刚开始
第一个坑: 直接使用nvmw install 6.9.2 来安装新版本时提示:

nvmw安装,用于控制node版本;


解决办法:这样的错误,原因是因为JS扩展名的文件被其他软件关联了,需要取消关联。
如系统中安装了ULTRAEDIT或者E钻加密软件等,就需要去掉关联;
或者如下解决方法:
在运行中输入“regedit”进入注册表,
只需要把[HKEY_CLASSES_ROOT\.js] 项下的那个默认值改成 "JSFile" 就可以正常运行JS 文件了。

第二个坑:
这货直接在天朝是使用不了的,好在这个外国作者也知道中国的国情。提供了如何设置淘宝镜像的方式
set "NVMW_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node"
set "NVMW_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs"
set "NVMW_NPM_MIRROR=http://npm.taobao.org/mirrors/npm"
注:每次使用,都得重新在命令行中设置,或者可以这三个变量也设置到环境变量中,或改一下他的源码,把这三个变量写死。

第三个坑:我是windows7系统,对应的是x64没错,但是在淘宝NPM镜像站和官方镜像站上对应的都是win-x64 ;
进入nvmw的程序目录。
1.修改nvmw.bat文件137行,x64改为win-x64
2.修改fget.js文件47行,XMLHTTP 更改为ServerXMLHTTP
其实有现成的修改版的nvmw.bat 一下就是代码,可以留个副本;

  1 @echo off
  2 if not defined NVMW_HOME (
  3   set "NVMW_HOME=%~dp0"
  4 )
  5 if not defined PATH_ORG (
  6   set "PATH_ORG=%PATH%"
  7 )
  8 set IS64=FALSE
  9 if exist "%PROGRAMFILES(X86)%" (
 10   set IS64=TRUE
 11 )
 12 if %IS64% == TRUE (
 13   set OS_ARCH=x64
 14 ) else (
 15   set OS_ARCH=x32
 16 )
 17 if not defined NVMW_NODEJS_ORG_MIRROR (
 18   set "NVMW_NODEJS_ORG_MIRROR=https://nodejs.org/dist"
 19 )
 20 if not defined NVMW_IOJS_ORG_MIRROR (
 21   set "NVMW_IOJS_ORG_MIRROR=https://iojs.org/dist"
 22 )
 23 if "%1" == "install" if not "%2" == "" (
 24   call :install %2 %3
 25   if not ERRORLEVEL == 1 call :use %2 %3
 26   exit /b %ERRORLEVEL%
 27 )
 28 if "%1" == "use" if not "%2" == "" (
 29   call :use %2 %3
 30   exit /b %ERRORLEVEL%
 31 )
 32 if "%1" == "ls" (
 33   call :ls
 34   exit /b %ERRORLEVEL%
 35 )
 36 if "%1" == "uninstall" if not "%2" == "" (
 37   call :uninstall %2 %3
 38   exit /b %ERRORLEVEL%
 39 )
 40 call :help
 41 exit /b %ERRORLEVEL%
 42 ::===========================================================
 43 :: help : Show help message
 44 ::===========================================================
 45 :help
 46 echo;
 47 echo Node Version Manager for Windows
 48 echo;
 49 echo Usage:
 50 echo   nvmw help                          Show this message
 51 echo   nvmw install [version] [arch]      Download and install a [version]
 52 echo                                        for [arch] architecture (optional)
 53 echo   nvmw uninstall [version]           Uninstall a [version]
 54 echo   nvmw use [version]                 Modify PATH to use [version]
 55 echo   nvmw ls                            List installed versions
 56 echo;
 57 echo Example:
 58 echo   nvmw install v0.10.21        Install a specific version number of node.js
 59 echo   nvmw use v0.10.21            Use the specific version
 60 echo   nvmw install iojs            Install the latest version of io.js
 61 echo   nvmw install iojs-v1.0.2     Install a specific version number of io.js
 62 echo   nvmw use iojs-v1.0.2         Use the specific version io.js
 63 echo;
 64 echo   nvmw install v0.10.35 x86    Install a 32-bit version
 65 exit /b 0
 66 ::===========================================================
 67 :: install : Install specified version node and npm
 68 ::===========================================================
 69 :install
 70 setlocal
 71 set ARCH=%OS_ARCH%
 72 if not "%2" == "" (
 73   set ARCH=%2
 74   :: x86, ia32 alias x32
 75   if "%2" == "x86" (
 76     set ARCH=x32
 77   )
 78   if "%2" == "ia32" (
 79     set ARCH=x32
 80   )
 81 )
 82 set NODE_TYPE=node
 83 set NODE_VERSION=%1
 84 :: nvmw install iojs-v1.0.2
 85 if "%NODE_VERSION:~4,1%" == "-" (
 86   for /f "tokens=1,2,* delims=-" %%a in ("%NODE_VERSION%") do (
 87     set NODE_TYPE=%%a
 88     set NODE_VERSION=%%b
 89   )
 90 )
 91 :: nvmw install iojs
 92 if %NODE_VERSION% == iojs (
 93   set NODE_TYPE=iojs
 94   set NODE_VERSION=latest
 95 )
 96 :: nvmw install node
 97 if %NODE_VERSION% == node (
 98   set NODE_TYPE=node
 99   set NODE_VERSION=latest
100 )
101 :: iojs-1.0.0, iojs-latest
102 if not %NODE_VERSION:~0,1% == v if not %NODE_VERSION:~0,1% == l (
103   set NODE_VERSION=v%NODE_VERSION%
104 )
105 if %NODE_TYPE% == iojs (
106   set DIST_URL=%%
107   if %ARCH% == x32 (
108     set NODE_EXE_URL=%NVMW_IOJS_ORG_MIRROR%/%NODE_VERSION%/win-x86/iojs.exe
109   ) else (
110     set NODE_EXE_URL=%NVMW_IOJS_ORG_MIRROR%/%NODE_VERSION%/win-x64/iojs.exe
111   )
112 ) else if %NODE_VERSION:~0,1% == 0 (
113   if %ARCH% == x32 (
114     set NODE_EXE_URL=%NVMW_NODEJS_ORG_MIRROR%/%NODE_VERSION%/node.exe
115   ) else (
116     set NODE_EXE_URL=%NVMW_NODEJS_ORG_MIRROR%/%NODE_VERSION%/x64/node.exe
117   )
118 ) else (
119   if %ARCH% == x32 (
120     set NODE_EXE_URL=%NVMW_NODEJS_ORG_MIRROR%/%NODE_VERSION%/win-x86/node.exe
121   ) else (
122     set NODE_EXE_URL=%NVMW_NODEJS_ORG_MIRROR%/%NODE_VERSION%/win-x64/node.exe
123   )
124 )
125 set "NODE_HOME=%NVMW_HOME%%NODE_VERSION%"
126 if %NODE_TYPE% == iojs (
127   set "NODE_HOME=%NVMW_HOME%%NODE_TYPE%\%NODE_VERSION%"
128 )
129 if not %ARCH% == %OS_ARCH% (
130   set "NODE_HOME=%NODE_HOME%-%ARCH%"
131 )
132 set "NODE_EXE_FILE=%NODE_HOME%\%NODE_TYPE%.exe"
133 set "NPM_ZIP_FILE=%NODE_HOME%\npm.zip"
134 if exist "%NODE_EXE_FILE%" (
135   endlocal
136   echo "%NODE_TYPE%/%NODE_VERSION% (%ARCH%)" already exists, please uninstall it first
137   exit /b 1
138 )
139 mkdir "%NODE_HOME%"
140 echo Start installing %NODE_TYPE%/%NODE_VERSION% (%ARCH%) to %NODE_HOME%
141 cscript //nologo "%NVMW_HOME%\fget.js" %NODE_EXE_URL% "%NODE_EXE_FILE%"
142 if not exist "%NODE_EXE_FILE%" (
143   echo Download %NODE_EXE_FILE% from %NODE_EXE_URL% failed
144   goto install_error
145 ) else (
146   if %NODE_TYPE% == iojs (
147     copy "%NVMW_HOME%\alias-node.cmd" "%NODE_HOME%\node.cmd"
148   )
149   echo Start install npm
150   "%NODE_EXE_FILE%" "%NVMW_HOME%\get_npm.js" "%NODE_HOME%" "%NODE_TYPE%/%NODE_VERSION%"
151   if not exist "%NPM_ZIP_FILE%" goto install_error
152   set "CD_ORG=%CD%"
153   %~d0
154   cd "%NODE_HOME%"
155   echo Start unzip "%NPM_ZIP_FILE%" to "%NODE_HOME%"
156   cscript //nologo "%NVMW_HOME%\unzip.js" "%NPM_ZIP_FILE%" "%NODE_HOME%"
157   mkdir "%NODE_HOME%\node_modules"
158   rmdir /s /q "%NODE_HOME%\node_modules\npm"
159   move npm-* "%NODE_HOME%\node_modules\npm"
160   copy "%NODE_HOME%\node_modules\npm\bin\npm.cmd" "%NODE_HOME%\npm.cmd"
161   cd "%CD_ORG%"
162   if not exist "%NODE_HOME%\npm.cmd" goto install_error
163   echo npm install ok
164   echo Finished
165   endlocal
166   exit /b 0
167 )
168 :install_error
169   rd /Q /S "%NODE_HOME%"
170   endlocal
171   exit /b 1
172 ::===========================================================
173 :: uninstall : Uninstall specified version
174 ::===========================================================
175 :uninstall
176 setlocal
177 set ARCH=%OS_ARCH%
178 if not "%2" == "" (
179   set ARCH=%2
180   :: x86, ia32 alias x32
181   if "%2" == "x86" (
182     set ARCH=x32
183   )
184   if "%2" == "ia32" (
185     set ARCH=x32
186   )
187 )
188 set NODE_TYPE=node
189 set NODE_VERSION=%1
190 if "%NODE_VERSION:~4,1%" == "-" (
191   for /f "tokens=1,2,* delims=-" %%a in ("%NODE_VERSION%") do (
192     set NODE_TYPE=%%a
193     set NODE_VERSION=%%b
194   )
195 )
196 :: nvmw uninstall iojs
197 if %NODE_VERSION% == iojs (
198   set NODE_TYPE=iojs
199   set NODE_VERSION=latest
200 )
201 :: nvmw uninstall node
202 if %NODE_VERSION% == node (
203   set NODE_TYPE=node
204   set NODE_VERSION=latest
205 )
206 if not %NODE_VERSION:~0,1% == v if not %NODE_VERSION:~0,1% == l (
207   set NODE_VERSION=v%NODE_VERSION%
208 )
209 if "%NVMW_CURRENT_TYPE%" == "%NODE_TYPE%" if "%NVMW_CURRENT%" == "%NODE_VERSION%" if "%NVMW_CURRENT_ARCH%" == "%ARCH%" (
210   echo Cannot uninstall currently-active %NODE_TYPE%/%NODE_VERSION% %ARCH%
211   exit /b 1
212 )
213 set "NODE_HOME=%NVMW_HOME%%NODE_VERSION%"
214 if %NODE_TYPE% == iojs (
215   set "NODE_HOME=%NVMW_HOME%%NODE_TYPE%\%NODE_VERSION%"
216 )
217 if not %ARCH% == %OS_ARCH% (
218   set "NODE_HOME=%NODE_HOME%-%ARCH%"
219 )
220 if not exist "%NODE_HOME%" (
221   echo %NODE_TYPE%/%NODE_VERSION% %ARCH% is not installed
222   exit /b 1
223 ) else (
224   rd /Q /S "%NODE_HOME%"
225   if ERRORLEVEL == 1 (
226     echo Cannot uninstall %NODE_TYPE%/%NODE_VERSION% %ARCH%
227     exit /b 1
228   ) else (
229     echo Uninstalled %NODE_TYPE%/%NODE_VERSION% %ARCH%
230     endlocal
231     exit /b 0
232   )
233 )
234 ::===========================================================
235 :: use : Change current version
236 ::===========================================================
237 :use
238 setlocal
239 set ARCH=%OS_ARCH%
240 if not "%2" == "" (
241   set ARCH=%2
242   :: x86, ia32 alias x32
243   if "%2" == "x86" (
244     set ARCH=x32
245   )
246   if "%2" == "ia32" (
247     set ARCH=x32
248   )
249 )
250 set NODE_TYPE=node
251 set NODE_VERSION=%1
252 if "%NODE_VERSION:~4,1%" == "-" (
253   for /f "tokens=1,2,* delims=-" %%a in ("%NODE_VERSION%") do (
254     set NODE_TYPE=%%a
255     set NODE_VERSION=%%b
256   )
257 )
258 :: nvmw use iojs
259 if %NODE_VERSION% == iojs (
260   set NODE_TYPE=iojs
261   set NODE_VERSION=latest
262 )
263 :: nvmw use node
264 if %NODE_VERSION% == node (
265   set NODE_TYPE=node
266   set NODE_VERSION=latest
267 )
268 if not %NODE_VERSION:~0,1% == v if not %NODE_VERSION:~0,1% == l (
269   set NODE_VERSION=v%NODE_VERSION%
270 )
271 set "NODE_HOME=%NVMW_HOME%%NODE_VERSION%"
272 if %NODE_TYPE% == iojs (
273   set "NODE_HOME=%NVMW_HOME%%NODE_TYPE%\%NODE_VERSION%"
274 )
275 if not %ARCH% == %OS_ARCH% (
276   set "NODE_HOME=%NODE_HOME%-%ARCH%"
277 )
278 if not exist "%NODE_HOME%" (
279   echo %NODE_TYPE%/%NODE_VERSION% is not installed
280   exit /b 1
281 )
282 endlocal
283 set NVMW_CURRENT_ARCH=%OS_ARCH%
284 if not "%2" == "" (
285   set NVMW_CURRENT_ARCH=%2
286   :: x86, ia32 alias x32
287   if "%2" == "x86" (
288     set NVMW_CURRENT_ARCH=x32
289   )
290   if "%2" == "ia32" (
291     set NVMW_CURRENT_ARCH=x32
292   )
293 )
294 set NVMW_CURRENT_TYPE=node
295 set NVMW_CURRENT=%1
296 if "%NVMW_CURRENT:~4,1%" == "-" (
297   for /f "tokens=1,2,* delims=-" %%a in ("%NVMW_CURRENT%") do (
298     set NVMW_CURRENT_TYPE=%%a
299     set NVMW_CURRENT=%%b
300   )
301 )
302 if %NVMW_CURRENT% == iojs (
303   set NVMW_CURRENT_TYPE=iojs
304   set NVMW_CURRENT=latest
305 )
306 if %NVMW_CURRENT% == node (
307   set NVMW_CURRENT_TYPE=node
308   set NVMW_CURRENT=latest
309 )
310 if not %NVMW_CURRENT:~0,1% == v if not %NVMW_CURRENT:~0,1% == l (
311   set NVMW_CURRENT=v%NVMW_CURRENT%
312 )
313 echo Now using %NVMW_CURRENT_TYPE% %NVMW_CURRENT% %NVMW_CURRENT_ARCH%
314 set "NODE_HOME=%NVMW_HOME%%NODE_VERSION%"
315 if %NVMW_CURRENT_TYPE% == iojs (
316   set "NODE_HOME=%NVMW_HOME%%NODE_TYPE%\%NODE_VERSION%"
317 )
318 if not %NVMW_CURRENT_ARCH% == %OS_ARCH% (
319   set NVMW_CURRENT_ARCH_PADDING=-%NVMW_CURRENT_ARCH%
320 ) else (
321   set NVMW_CURRENT_ARCH_PADDING=
322 )
323 if %NVMW_CURRENT_TYPE% == iojs (
324   set "PATH=%NVMW_HOME%;%NVMW_HOME%%NVMW_CURRENT_TYPE%\%NVMW_CURRENT%%NVMW_CURRENT_ARCH_PADDING%;%PATH_ORG%"
325   set "NODE_PATH=%NVMW_HOME%%NVMW_CURRENT_TYPE%\%NVMW_CURRENT%%NVMW_CURRENT_ARCH_PADDING%\node_modules"
326 ) else (
327   set "PATH=%NVMW_HOME%;%NVMW_HOME%\%NVMW_CURRENT%%NVMW_CURRENT_ARCH_PADDING%;%PATH_ORG%"
328   set "NODE_PATH=%NVMW_HOME%\%NVMW_CURRENT%%NVMW_CURRENT_ARCH_PADDING%\node_modules"
329 )
330 exit /b 0
331 ::===========================================================
332 :: ls : List installed versions
333 ::===========================================================
334 :ls
335 setlocal
336 echo node:
337 if exist "%NVMW_HOME%" (
338   dir "%NVMW_HOME%v*" /b /ad
339 )
340 echo;
341 echo iojs:
342 if exist "%NVMW_HOME%iojs" (
343   dir "%NVMW_HOME%iojs\*" /b /ad
344 )
345 echo;
346 if not defined NVMW_CURRENT (
347   set NVMW_CURRENT_V=none
348 ) else (
349   set NVMW_CURRENT_V=%NVMW_CURRENT%
350 )
351 echo Current: %NVMW_CURRENT_TYPE%/%NVMW_CURRENT_V% %NVMW_CURRENT_ARCH%
352 endlocal
353 exit /b 0

第四个坑:更新node到4.0及以上的时候会出现安装失败 提示 node v6.9.2 does not include npm;
办法: https://github.com/hakobera/nvmw/issues/58
https://my.oschina.net/bakuman/blog/637316
http://blog.5ibc.net/p/49266.html
按文章内容修改了nvmw.bat,然后手动下载npm-master.zip并改名为npm.zip后放到nvmw目录下新建的v4.4.0目录下,然后重新的执行 nvmw install 4.4.0,终于安装成功。(CMD执行 nvmw install 6.9.2的时候会在nvmw安装目录中生产一个对应版本的文件夹,这时候把npm.zip压缩包放进去,就能完成升级);

这样我们就可以控制nodejs的版本了,我的天,真心的麻烦~~

最后一步,我们可以使用  npm install npm -g 来获得新版的npm了;

总算大功告成,大多数的解决办法都是从网上找到的;

 

2017.02.22补充说明;

使用nvmw install 版本号  安装了之后,并不会马上转变成安装的版本,

需要使用nvmw use v6.9.2 (版本号看个人需求)进行版本的转换,install只是保存到本地供版本替换使用;

 

下面是参考链接:

http://www.tuicool.com/articles/Vzquy2 

http://blog.csdn.net/duanyachao/article/details/51822015

http://www.wtoutiao.com/p/193HWBp.html

https://segmentfault.com/a/1190000004855835

https://my.oschina.net/bakuman/blog/637316

http://blog.5ibc.net/p/49266.html

https://github.com/hakobera/nvmw/issues/58

 

好了,希望能帮到需要的同学们。

2017.01.06

 

2018.10.11

换win10的环境后安装没有这么多的麻烦了,具体参考:https://segmentfault.com/a/1190000004855835

其中第三点.修改get_npm.js文件42行路径,其实为

nvmw安装,用于控制node版本;

使用nvmw install 5.9.1安装特定版本node时,最后会提示D:\nvmw\v5.9.1\node.exe - 另一个程序正在使用此文件,进程无法访问。  

但是实质上是安装成功的

nvmw use 5.9.1 

node -v

可以查看node版本已经切换为特定版本了

 


推荐阅读
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文介绍了如何通过命令行有效地终止所有 Node.js 进程实例,以解决因端口冲突或其他服务冲突导致的问题。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • 本文介绍了如何解决 ChinaASP.Upload 错误 '80040002',即必须添加版权信息的问题,并提供了详细的步骤和注意事项。 ... [详细]
  • Ubuntu 14.04 系统安装后网卡名称修改方法
    本文介绍了在安装 Ubuntu 14.04 Server 版本后,如何将默认的网卡名称从非 eth 格式修改为传统的 eth 格式,并提供了详细的步骤和示例。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 利用Python与Android进行高效移动应用开发
    通过结合Python和Android,可以实现高效的移动应用开发。首先,需要安装Scripting Layer for Android (SL4A),这是一个开源项目,旨在为Android系统提供脚本语言支持。SL4A不仅简化了开发流程,还允许开发者使用Python等高级语言编写脚本,从而提高开发效率和代码可维护性。此外,SL4A还支持多种其他脚本语言,进一步扩展了其应用范围。通过这种方式,开发者可以快速构建功能丰富的移动应用,同时保持较高的灵活性和可扩展性。 ... [详细]
  • 本文详细探讨了在使用 Python 的 pip 工具安装包时遇到的 ReadTimeoutError 错误,并提供了有效的解决方案。 ... [详细]
author-avatar
望学有所得
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有