非root用户安装python3.3和django1.5安装问题

本文分享了在安装Python 3.3和Django 1.5过程中遇到的nomodulenamedzlib问题的解决方案,包括使用root权限安装zlib-devel、配置Python编译选项等步骤。

这两天安装python3.3和django1.5的时候遇到些问题,记录一下。

python安装和django的安装还是照着官网攻略一步一步来,就是到最后一步,用python-admin.py startproject mysite的时候,提示no module named zlib,解决这个问题花了不少时间,中间过程不详细说了,这里描述一下解决办法:

1. 切换到root用户,yum install zlib-devel(笔者的系统上之前用rpm -qa | grep zlib检查过有3个zlib的包,不知道是不是全的,就在线装了,执行yum期间还碰到system is not registered with rhn,是redhat的版权问题,解决办法:http://farlee.info/archives/centos5-python-mod_wsgi-django-install-osqa.html

2. cd到/homeaaron/Python-3.3.1/Modules下grep -n zlib Setup,看到有一行#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz,去掉前面的注释。

3. 到Python-3.3.1目录下,./configure --prefix=/install_dir后,python安装成功. 这里要注意:因为一般linux系统都自带有python,要在命令行下python命令是执行自己的安装的 python命令,可能需要修改用户的profile文件等操作,这里省略。python-3.3.1的bin目录下没有python文件,只有python3文件,需要cp成python文件

4. 到django目录下执行 python setup.py install

5. 到工程目录下执行django-admin.py startproject mysite


成功!


中间还碰到no module named django.core等这些错误,基本上都是由于python命令使用了系统自带的python命令而没有用自己安装的(python命令的路径不同,选择加载库的路径会有区别,有可能会导致找不到库)

开发一个基于 Python Django Vue 的书籍销售系统是一个综合性的项目,涉及前后端的协同开发以及数据库设计。以下是详细的开发指南步骤说明。 ### 3.1 系统架构设计 系统的整体架构可以分为三个主要部分: - **前端(Vue.js + Element UI)**:负责用户界面展示交互。 - **后端(Python + Django)**:提供 RESTful API 接口,并处理业务逻辑数据存储。 - **数据库(MySQL 或 PostgreSQL)**:用于持久化存储数据,如图书信息、用户信息、订单等。 ### 3.2 开发环境搭建 #### 后端(Django1. 安装 Python Django: ```bash pip install django djangorestframework ``` 2. 创建 Django 项目应用: ```bash django-admin startproject bookstore cd bookstore python manage.py startapp books ``` 3. 配置 `settings.py` 文件以支持 MySQL 数据库: ```python DATABASES = { &#39;default&#39;: { &#39;ENGINE&#39;: &#39;django.db.backends.mysql&#39;, &#39;NAME&#39;: &#39;bookstore_db&#39;, &#39;USER&#39;: &#39;root&#39;, &#39;PASSWORD&#39;: &#39;yourpassword&#39;, &#39;HOST&#39;: &#39;localhost&#39;, &#39;PORT&#39;: &#39;3306&#39;, } } ``` 4. 安装 MySQL 客户端: ```bash pip install mysqlclient ``` 5. 安装 Django REST Framework(用于构建 API): ```bash pip install djangorestframework ``` #### 前端(Vue.js + Element UI) 1. 安装 Vue CLI: ```bash npm install -g @vue/cli ``` 2. 创建 Vue 项目: ```bash vue create bookstore-frontend cd bookstore-frontend ``` 3. 安装 Element UI Axios: ```bash npm install element-ui axios ``` 4. 在 `main.js` 中引入 Element UI: ```javascript import ElementUI from &#39;element-ui&#39;; import &#39;element-ui/lib/theme-chalk/index.css&#39;; Vue.use(ElementUI); ``` ### 3.3 数据库模型设计 在 `books/models.py` 中定义图书、用户、订单等模型: ```python from django.db import models from django.contrib.auth.models import User class Book(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=100) price = models.DecimalField(max_digits=10, decimal_places=2) stock = models.IntegerField() description = models.TextField() def __str__(self): return self.title class Order(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) book = models.ForeignKey(Book, on_delete=models.CASCADE) quantity = models.IntegerField() total_price = models.DecimalField(max_digits=10, decimal_places=2) created_at = models.DateTimeField(auto_now_add=True) def save(self, *args, **kwargs): self.total_price = self.book.price * self.quantity super().save(*args, **kwargs) ``` 运行迁移命令以创建数据库表: ```bash python manage.py makemigrations python manage.py migrate ``` ### 3.4 后端 API 开发 使用 Django REST Framework 创建 API 接口,在 `books/serializers.py` 中定义序列化器: ```python from rest_framework import serializers from .models import Book, Order class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = &#39;__all__&#39; class OrderSerializer(serializers.ModelSerializer): class Meta: model = Order fields = &#39;__all__&#39; ``` 在 `books/views.py` 中创建视图: ```python from rest_framework import viewsets from .models import Book, Order from .serializers import BookSerializer, OrderSerializer class BookViewSet(viewsets.ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer class OrderViewSet(viewsets.ModelViewSet): queryset = Order.objects.all() serializer_class = OrderSerializer ``` 在 `urls.py` 中配置路由: ```python from django.urls import path, include from rest_framework.routers import DefaultRouter from books.views import BookViewSet, OrderViewSet router = DefaultRouter() router.register(r&#39;books&#39;, BookViewSet) router.register(r&#39;orders&#39;, OrderViewSet) urlpatterns = [ path(&#39;api/&#39;, include(router.urls)), ] ``` ### 3.5 前端页面开发 在 Vue 项目中创建组件来展示图书列表并实现购买功能。 #### 图书列表组件 (`components/BookList.vue`) ```vue <template> <div> <el-table :data="books" style="width: 100%"> <el-table-column prop="title" label="书名"></el-table-column> <el-table-column prop="author" label="作者"></el-table-column> <el-table-column prop="price" label="价格"></el-table-column> <el-table-column prop="stock" label="库存"></el-table-column> <el-table-column label="操作"> <template slot-scope="{row}"> <el-button @click="addToCart(row)">加入购物车</el-button> </template> </el-table-column> </el-table> </div> </template> <script> import axios from &#39;axios&#39;; export default { data() { return { books: [] }; }, mounted() { this.fetchBooks(); }, methods: { fetchBooks() { axios.get(&#39;http://localhost:8000/api/books/&#39;) .then(response => { this.books = response.data; }); }, addToCart(book) { const orderData = { user: 1, // 示例用户ID book: book.id, quantity: 1 }; axios.post(&#39;http://localhost:8000/api/orders/&#39;, orderData) .then(() => { this.$message.success(&#39;已加入购物车&#39;); }); } } }; </script> ``` ### 3.6 系统部署与测试 1. 启动 Django 开发服务器: ```bash python manage.py runserver ``` 2. 启动 Vue 开发服务器: ```bash npm run serve ``` 3. 访问 `http://localhost:8080` 查看前端页面,并测试图书浏览购买功能。 4. 使用 Postman 或 curl 测试后端 API 接口的功能是否正常。 ### 3.7 可能的扩展功能 - **用户注册与登录**:集成 Django 的认证系统或使用 JWT 实现用户身份验证。 - **购物车管理**:允许用户添加多个图书到购物车,并进行结算。 - **支付集成**:接入第三方支付接口(如支付宝、微信支付)。 - **订单状态跟踪**:提供订单状态更新功能,如“已发货”、“已完成”等。 - **搜索与筛选**:实现按书名、作者、类别等条件进行图书搜索。 通过以上步骤,可以构建一个完整的书籍销售系统[^1]。该系统不仅能够满足基本的图书销售需求,还可以根据实际业务场景进行功能扩展优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值