ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

零基础跑通Python项目:环境搭建与依赖安装全攻略

零基础跑通Python项目:环境搭建与依赖安装全攻略 1. 零基础跑通Python项目先搞清楚你手里到底有什么很多人第一次拿到一个Python项目压缩包双击打开一看一堆文件夹和文件完全不知道从哪里下手。这不是你笨而是没人告诉你一个Python项目通常由哪几块拼起来。我先把这个事情讲透后面所有操作你都能对上号。一个典型的Python项目尤其是带Web界面的那种通常包含这几个核心部分Python解释器负责跑代码依赖包是别人写好的轮子你直接拿来用数据库存数据前端页面展示界面配置文件告诉程序去哪里找数据库、用什么端口。这五样东西缺一个项目就跑不起来。你拿到的项目大概率是这种结构根目录下有一个requirements.txt依赖清单、一个main.py或app.py入口文件、一个config.py或.env配置文件、一个static文件夹前端静态资源、一个templates文件夹HTML模板。有些项目还会带一个sql文件夹里面放着建表语句。提示如果你拿到的项目里没有requirements.txt不要慌可以看import语句手动装包但这种情况比较少见正规项目都会带。那为什么零基础的人容易卡住因为Python项目不像exe文件双击就能跑它需要你先搭好一个“运行环境”。这个环境包括装Python、装PyCharm或者VSCode、装MySQL、装Navicat、装Node.js如果前端是Vue。每一步都可能出问题而网上的教程往往只讲一个工具不讲它们怎么串起来。我见过太多人卡在“pip install 报错”或者“MySQL连不上”这种地方然后放弃了。其实这些问题都有固定套路可以解决后面我会一个一个拆开讲。你现在只需要记住一件事跑通一个Python项目本质上就是把这五个部分按顺序装好、配好、连起来。顺序很重要先装Python再装IDE再装数据库最后配项目。另外说一个很多人忽略的点项目路径不要带中文和空格。我见过有人把项目放在D:\我的项目\新建文件夹\下面然后各种莫名其妙的报错。Python对中文路径的支持时好时坏尤其是涉及到文件读写的时候。最稳妥的做法是放在D:\projects\或者E:\code\这种纯英文路径下。这个坑我踩过不止一次你提前避开能省很多时间。2. Python解释器安装别小看这一步一半的坑从这里开始2.1 下载与版本选择Python的官方网站是 python.org进去之后点Downloads它会自动推荐你系统对应的版本。这里有一个关键决策选3.8到3.11之间的版本。为什么不选最新的因为很多项目的依赖包对最新版Python的支持有延迟你装个3.13结果某个包还没适配pip install直接报错。具体来说如果你拿到的项目没有明确指定Python版本我建议选3.9或3.10。这两个版本是目前兼容性最好的绝大多数第三方库都支持。3.8也可以但有些新一点的库开始放弃3.8了。3.11和3.12也没问题但偶尔会遇到个别包编译失败的情况。下载的时候注意选对系统Windows选“Windows installer (64-bit)”Mac选“macOS 64-bit universal2 installer”。如果你的电脑是M1/M2芯片的Mac也选universal2那个它同时支持Intel和Apple Silicon。2.2 安装过程中的关键勾选项Windows上安装Python安装界面底部有两个复选框一个是“Install launcher for all users”另一个是“Add Python to PATH”。第二个必须勾上这是新手最容易忽略的地方。如果不勾你装完Python后在命令行输入python会提示“不是内部或外部命令”然后你就懵了。勾上“Add Python to PATH”的意思是把Python的安装路径加到系统的环境变量里这样你在任何目录下打开命令行都能直接调用Python。如果忘了勾怎么办也不用重装手动加环境变量就行找到Python安装目录通常是C:\Users\你的用户名\AppData\Local\Programs\Python\Python39\把这个路径和它下面的Scripts文件夹路径都加到系统环境变量的Path里。安装类型选“Customize installation”还是“Install Now”我建议选Customize这样你可以看到所有选项。在Optional Features页面确保勾上“pip”和“py launcher”其他可以默认。在Advanced Options页面勾上“Add Python to environment variables”如果你想让所有用户都能用再勾上“Install for all users”。Mac上安装Python更简单下载pkg文件双击安装就行PATH会自动配好。但Mac自带一个Python2.7你装完Python3之后命令行里要用python3和pip3来调用直接输python可能还是指向系统自带的旧版本。这个要注意区分。2.3 验证安装是否成功装完之后打开命令行Windows按WinR输入cmdMac打开Terminal输入python --version如果显示Python 3.9.x之类的版本号说明安装成功。再输入pip --version显示pip的版本和对应的Python路径就说明pip也装好了。如果python命令不识别试试python3如果pip不识别试试pip3。Windows上还有一种情况是输python会跳到微软应用商店这是因为系统里有个假的python别名去“设置→应用→高级应用设置→应用执行别名”里把python和python3的别名关掉就行。注意如果你电脑上之前装过多个版本的Python命令行里的python可能指向的不是你刚装的那个。用where pythonWindows或which python3Mac可以查看当前用的是哪个路径的Python。3. PyCharm的安装与项目导入让代码跑起来的主战场3.1 社区版还是专业版PyCharm有两个版本Community社区版和Professional专业版。社区版免费专业版收费。对于跑Python项目来说社区版完全够用。专业版多出来的功能主要是Web框架的深度支持比如Django、Flask的专属工具窗口、数据库工具、远程开发等。如果你只是要跑通一个项目社区版没有任何问题。下载地址在JetBrains官网搜“PyCharm download”就能找到。下载的时候选对你的系统Windows选exeMac选dmg。安装过程一路下一步就行有一个选项是“Create Desktop Shortcut”建议勾上方便以后打开。安装完成后第一次打开它会问你要不要导入设置选“Do not import settings”。然后选主题深色浅色看个人喜好。接下来会让你创建项目或者打开项目这时候先不急着创建我们直接打开你拿到的那个项目。3.2 用PyCharm打开已有项目点击“Open”找到你项目所在的文件夹选中后点OK。PyCharm会加载项目结构这时候你可能会看到右下角提示“No interpreter configured”或者“Interpreter: No interpreter”。这说明PyCharm还不知道用哪个Python来跑这个项目需要你手动指定。点击右下角的提示或者去File→Settings→Project→Python Interpreter点右上角的齿轮图标选“Add”。在弹出的窗口里左边选“System Interpreter”然后在下拉框里找到你之前安装的Python路径。Windows通常在C:\Users\你的用户名\AppData\Local\Programs\Python\Python39\python.exeMac在/usr/local/bin/python3或者/Library/Frameworks/Python.framework/Versions/3.9/bin/python3。选好之后点OKPyCharm会开始索引项目文件右下角有进度条。等索引完成你的项目结构就会在左侧项目树里显示出来。3.3 配置虚拟环境强烈建议这里我要重点讲一个东西虚拟环境。很多新手不知道这个概念直接往系统Python里装包结果不同项目的依赖冲突搞得一团糟。虚拟环境的逻辑很简单给每个项目单独建一个“包仓库”项目A用到的包和项目B用到的包互不干扰。在PyCharm里创建虚拟环境很方便。去File→Settings→Project→Python Interpreter点齿轮→Add这次左边选“Virtualenv Environment”然后选“New environment”。Location会自动填在你项目目录下的venv文件夹里Base interpreter选你系统安装的Python。勾上“Inherit global site-packages”可选可不选一般不建议勾保持隔离性。创建完成后PyCharm会自动激活这个虚拟环境。你以后在Terminal里执行pip install包就装在这个虚拟环境里不会污染系统的Python。提示如果你在PyCharm的Terminal里看到命令行前面有个(venv)前缀说明虚拟环境已经激活了。如果没有手动执行venv\Scripts\activateWindows或source venv/bin/activateMac。3.4 安装项目依赖打开项目根目录下的requirements.txt你会看到一列包名和版本号比如flask2.0.1 sqlalchemy1.4.23 pymysql1.0.2 requests2.26.0在PyCharm的Terminal里执行pip install -r requirements.txtpip会逐个下载安装这些包。如果速度慢可以加国内镜像源pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple安装过程中如果某个包报错常见原因有三个一是Python版本不兼容二是缺少编译工具Windows上某些包需要C编译器三是网络问题。对于第一个你需要换Python版本或者找替代包对于第二个装一个Visual Studio Build Tools通常能解决对于第三个换镜像源或者重试。如果requirements.txt里没有指定版本号pip会装最新版这可能导致兼容性问题。遇到这种情况可以尝试手动指定一个稍旧的版本比如pip install flask2.0.1。4. MySQL与Navicat数据存储和管理的组合拳4.1 MySQL的下载与安装MySQL是Python项目最常用的数据库之一。下载地址在dev.mysql.com进去找“MySQL Community Server”下载。Windows上推荐下载“MySQL Installer for Windows”它是一个安装管理器可以一次性装好MySQL Server、MySQL Workbench等组件。安装类型选“Developer Default”就行它会装Server和Workbench。安装过程中会要求你设置root密码这个密码一定要记住后面配置项目要用。密码建议设一个你熟悉的比如root123456但正式环境不要用这么简单的。有一个关键选项是“Authentication Method”MySQL 8.0默认用caching_sha2_password但有些老的Python库不支持这个认证方式。如果你遇到“Authentication plugin ‘caching_sha2_password’ cannot be loaded”这种报错解决办法是在安装时选“Legacy Authentication Method”或者装完之后用ALTER USER语句改认证方式ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;Windows上MySQL会注册为系统服务开机自启。你可以在“服务”里看到MySQL80这个服务确保它是运行状态。Mac上可以用Homebrew安装brew install mysql然后用brew services start mysql启动。4.2 用Navicat连接MySQLNavicat是一个数据库管理工具图形化界面比命令行的mysql client好用得多。下载Navicat Premium安装后打开点“连接”→“MySQL”填写连接信息连接名随便起比如“本地MySQL”主机localhost或127.0.0.1端口3306默认用户名root密码你安装MySQL时设的密码点“测试连接”如果显示“连接成功”就说明Navicat和MySQL之间的通道打通了。如果报错常见原因有MySQL服务没启动、端口被占用、密码错误、防火墙拦截。逐个排查就行。连接成功后在Navicat左侧会显示你的MySQL实例展开可以看到已有的数据库。这时候你需要做一件事创建项目所需的数据库。看项目里的配置文件或者sql文件夹找到数据库名比如mydb然后在Navicat里右键→“新建数据库”字符集选utf8mb4排序规则选utf8mb4_general_ci。创建完数据库后如果项目带了.sql文件双击打开在Navicat里执行这些SQL语句来建表。具体操作是选中你的数据库右键→“运行SQL文件”选择项目里的sql文件执行。执行完刷新一下表就出来了。4.3 项目中的数据库配置打开项目的配置文件通常是config.py、settings.py或者.env文件找到数据库相关的配置项DATABASE_CONFIG { host: localhost, port: 3306, user: root, password: 你的密码, database: mydb, charset: utf8mb4 }把password改成你实际的MySQL密码database改成你创建的数据库名。如果项目用的是SQLAlchemy配置可能长这样SQLALCHEMY_DATABASE_URI mysqlpymysql://root:你的密码localhost:3306/mydb?charsetutf8mb4注意这里的mysqlpymysql表示用pymysql这个库来连接MySQL所以你需要确保pymysql已经装了。如果用的是mysqlclient就写成mysqlmysqldb。注意配置文件里的密码不要带特殊字符如果密码里有、#、/这些字符URL解析会出问题。要么改密码要么对特殊字符进行URL编码。5. Vue前端的依赖安装与启动前后端一起跑才算完整5.1 Node.js的安装如果你的项目前端是Vue写的那你需要装Node.js。下载地址在nodejs.org选LTS版本长期支持版不要选Current版本。LTS更稳定兼容性更好。Windows上双击msi安装一路下一步。安装完成后打开命令行输入node -v和npm -v能显示版本号就说明装好了。Mac上可以用Homebrewbrew install node。npm是Node.js自带的包管理器类似于Python的pip。有时候npm下载速度慢可以换成国内镜像npm config set registry https://registry.npmmirror.com5.2 安装前端依赖进入项目的frontend目录或者叫web、client、vue-ui之类的找到package.json文件。在终端里执行npm install这个命令会读取package.json里的依赖列表把所有前端包下载到node_modules文件夹里。这个过程可能比较慢耐心等。如果报错常见原因是Node.js版本不对、网络问题、或者某个包需要编译工具。如果npm install卡住不动可以试试npm install --verbose看详细日志或者删掉node_modules和package-lock.json重新来。有时候是某个包的源挂了换镜像源能解决。5.3 启动前端开发服务器依赖装完后执行npm run serve或者npm run dev具体用哪个命令看package.json里的scripts字段。执行后会启动一个开发服务器通常监听8080或3000端口。终端会显示“App running at: http://localhost:8080”在浏览器打开这个地址就能看到前端页面。如果前端需要调用后端API还需要配置代理。在vue.config.js或vite.config.js里找到proxy配置确保它指向后端运行的地址和端口。比如后端跑在5000端口代理配置大概是proxy: { /api: { target: http://localhost:5000, changeOrigin: true } }5.4 前后端联调前端和后端都启动后打开浏览器访问前端地址看看页面能不能正常加载数据能不能从后端拉取。如果页面空白或者报错按F12打开开发者工具看Console和Network标签页的报错信息。常见的联调问题有跨域报错CORS、接口404、数据格式不对。跨域问题可以在后端加CORS支持Flask用flask-corsDjango用django-cors-headers。接口404说明前端请求的路径和后端定义的不匹配对照检查一下。数据格式不对通常是前端期望JSON但后端返回了HTML看Network里的Response内容就能定位。6. 启动项目时最容易卡住的几个地方6.1 端口被占用启动项目时如果报“Address already in use”或者“端口已被占用”说明你要用的端口被别的程序占了。Windows上用netstat -ano | findstr :5000找到占用端口的进程PID然后在任务管理器里结束它。Mac上用lsof -i :5000查看然后kill -9 PID结束进程。更简单的办法是改项目配置换一个不常用的端口比如把5000改成5001。但要注意前端代理配置也要同步改。6.2 模块找不到“ModuleNotFoundError: No module named ‘xxx’”是最常见的报错之一。原因通常是包没装、装到了错误的Python环境里、或者包名拼写错误。解决办法确认虚拟环境激活了然后pip install xxx。如果已经装了还报这个错检查PyCharm的Interpreter设置是不是指向了正确的虚拟环境。6.3 数据库连接失败“Can‘t connect to MySQL server”或者“Access denied for user”这类报错排查顺序是MySQL服务是否启动→用户名密码是否正确→数据库是否存在→端口是否对→防火墙是否拦截。在Navicat里能连上但项目连不上多半是配置文件里的密码写错了或者项目用的认证方式和MySQL 8.0默认的不兼容。6.4 编码问题“UnicodeDecodeError”或者中文乱码通常是文件编码或数据库编码不一致导致的。确保Python文件保存为UTF-8数据库和表的字符集设为utf8mb4连接字符串里加上?charsetutf8mb4。Windows上命令行的默认编码可能是GBK在代码里读写文件时显式指定encoding‘utf-8’。6.5 静态文件加载失败前端页面样式丢失、图片不显示看Network里静态资源的请求是不是404。如果是检查后端静态文件目录配置对不对或者前端打包路径有没有问题。Flask的静态文件默认在static文件夹Django需要配置STATIC_URL和STATICFILES_DIRS。7. 一些让效率翻倍的个人习惯装完这一整套环境之后我建议你做一件事把整个配置过程记录下来。不用写得多正式就在记事本里记一下你装了什么版本、装在哪、密码是什么、遇到了什么问题怎么解决的。下次换电脑或者帮别人配的时候直接照着笔记走能省大量时间。另一个习惯是用虚拟环境隔离每个项目。我见过太多人所有项目共用一个Python环境结果A项目要flask 1.xB项目要flask 2.x互相打架。虚拟环境虽然多占一点磁盘空间但省下来的排错时间远远值得。还有一点不要随便升级依赖包。项目能跑起来之后除非有明确的安全漏洞或者功能需求否则不要动requirements.txt里的版本号。我吃过这个亏手贱升级了一个包结果整个项目跑不起来了回滚又花了不少时间。最后说一个关于PyCharm的小技巧在Settings→Tools→Terminal里把Shell path改成你常用的终端比如Windows上改成PowerShell或者Git BashMac上改成zsh。这样你在PyCharm里执行命令的体验和在外面一样不会遇到某些命令不兼容的问题。如果你按照上面的步骤走下来项目还是跑不起来大概率是某个环节的版本不匹配。这时候不要慌把完整的报错信息复制出来从最后一行往前看通常最后一行就是根因。然后针对那个根因去搜索比漫无目的地搜“Python项目怎么跑”效率高得多。
返回列表