Django-pip安装xadmin遇到的问题

首先说明一下 直接使用pip安装出现的问题:

运行:pip install xadmin 后报错,以下为报错信息:

C:\Windows\system32>pip install xadmin
Collecting xadmin
  Downloading xadmin-0.6.1.tar.gz (1.0MB)
    100% |████████████████████████████████| 1.0MB 329kB/s
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "", line 1, in 
      File "C:\Users\Hao\AppData\Local\Temp\pip-build-m7x6g0ti\xadmin\setup.py", line 11, in 
        long_description=open('README.rst').read(),
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence

目前网上已经写有很多的解决方法,但看到很多都是不适用的,避免重复踩坑就在这记录一下,
如以下种种:

  • pip install django-xadmin;
  • 使用 pip install (某插件的名字),然后重新调用pip命令安装;
  • pip install git+git://github.com/sshwsfc/xadmin.git;
  • 新建一个txt空文件,把文件名改成README.rst,并替换掉xadmin-master.zip中的原文件;
  • 在pycharm使用setting 直接安装,提示倒是successfully,然而我愣是没找着;
    反正总的来说上面的方法都不适合我,总之上即使安装成功后,调用时候也是出现其他报错,最后是瞎忙活大半天。

最后找到的解决办法:

(1)直接到github下载源码,https://github.com/sshwsfc/xadmin,然后在pycharm中的项目下创建一个package,命名为extra_apps并Mark为Sources Root,再把zip文件中的xadmin复制到extra_apps中,结果如图所示:

image.png

(2)然后在 项目名.settings中加入路径:

import os
import sys

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

(3)项目名.settings中注册app:('xadmin' 和 'crispy_forms')

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
]

(4)项目名.urls中配置路由:

from django.urls import path
import xadmin

urlpatterns = [
    path('xadmin/', xadmin.site.urls),
]

(5)之后再makemigrations和migrate一下就大功告成了。
(6)当然,我们还可以把xadmin调成中文的,毕竟中文亲切点嘛,代码如下:

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

(7)最后Task一个超级管理员就可以进入后台。createsuperuser

你可能感兴趣的:(Django-pip安装xadmin遇到的问题)