我在dajngo中的postgresql数据库有问题。当我运行命令“ python -m pip install psycopg2”时,它可以工作。所以我运行命令“ python manage.py makemigrations”,我遇到了这个问题:
command result1
command result2
但是当我运行命令“ pip Frozen”时,结果如下:
Django == 2.2.6
psycopg2 == 2.8.4
pytz == 2019.3
sqlparse == 0.3.0
这是我的settings.py文件(数据库):
my settings.py - database
这是我的配置:
Windows 10 64位
-Django 2.2.6
-Psycopg2 2.8.4
-PostgreSQL 12
-pip 19.3.1
C:\ XXX \ PostgreSQL \ 12 \ bin在我的PATH中。 我使用Visual Studio Code IDE。
答案 0 :(得分:0)
0。安装miniconda
1。 conda基本用法
超级容易:
conda env list
conda create --name <my_env_name>
conda activate <my_env_name>
或source activate <my_env_name>
conda deactivate
或source deactivate
进入 conda环境后,
conda install <package-name>
主要与-c <reponame>
一起使用
最喜欢的仓库是conda-forge
,anaconda
或生物信息学bioconda
(最新)conda remove <package-name>
conda list
所以您看到的所有内容都与virtualenv非常相似。
2。搜索conda软件包安装命令
仅使用Google conda install <packagename>
,然后您会发现大部分anaconda
网站
使用正确的命令(-c whatever
)以及针对哪些操作系统和版本...
但是,conda软件包大多不是一流的。点更是一流的。 您可以通过在conda env中安装pip来解决此问题。
3。创建环境并安装python和pip
# choose your conda env name
conda create --name <my_django_project>
# enter your conda env
source activate <my_django_project>
# install python, [ipython, jupyter]
conda install -c conda-forge python ipython jupyter
# just leave ipython and jupyter away if you don't want them
# you enforce versions by attaching `=<versionnumber>`
# e.g.
conda install -c conda-forge python=3.8
# however, for my 32-bit computer it suggests 3.7.1
# and I would go with that
# you CAN install python v3.8, but I won't recommend it
# https://anaconda.org/conda-forge/python
# install pip # pip is automatically installed by conda
# when installing python like above.
# conda install -c conda-forge pip
所以conda install -c conda-forge python
之后的输出是:
The following packages will be downloaded:
package | build
---------------------------|-----------------
wheel-0.32.3 | py37_0 35 KB
pip-18.1 | py37_0 1.7 MB
python-3.7.1 | h0371630_7 35.9 MB
setuptools-40.6.3 | py37_0 613 KB
------------------------------------------------------------
Total: 38.3 MB
将安装以下新软件包:
_libgcc_mutex: 0.1-main
ca-certificates: 2018.03.07-0
certifi: 2018.11.29-py37_0
libedit: 3.1.20170329-h6b74fdf_2
libffi: 3.2.1-h97ff0df_4
libgcc-ng: 8.2.0-h9268252_1
libstdcxx-ng: 8.2.0-h9268252_1
ncurses: 6.1-he6710b0_1
openssl: 1.1.1a-h7b6447c_0
pip: 18.1-py37_0
python: 3.7.1-h0371630_7
readline: 7.0-h7b6447c_5
setuptools: 40.6.3-py37_0
sqlite: 3.26.0-h7b6447c_0
tk: 8.6.8-hbc83047_0
wheel: 0.32.3-py37_0
xz: 5.2.4-h14c3975_4
zlib: 1.2.11-h7b6447c_3
因此它会使用python自动安装pip。
因此,完成此安装后,您还需要pip
才能安装到
康达环境!
我要做的是尝试找到所需软件包的conda安装。
只有使用conda无法获得所需的版本或软件包时,
我在这种环境下切换到pip install
。
由于本地安装到虚拟环境中,因此pip将在本地安装
一切都进入了conda环境。
(顺便说一句,我知道,也许您在一开始就使用了全局点
您的虚拟环境中没有一点?也许是问题所在?)
4。在conda env中安装postgresql
输入 conda env后,请执行以下操作:
conda install -y -c conda-forge postgresql
5。在Django中设置PostgreSQL
我使用的来源是:[this] [http://krischer.github.io/jane/setup/index.html#building-the-documentation]和[this] [http://krischer.github.io/jane/setup/index.html#postgresql-setup]。
django使用的数据库是内部数据库。
首先初始化一个外部(基础)数据库:
initdb -D db_djangogirls # this is a database physically in your folder
# start postgres by using this db
postgres -D db_djangogirls & # runs postgres
# press RET to send it to background!
在该状态下-创建非超级用户
createuser --encrypted --pwprompt djangogirls
# pass '<yourpassword>' 2x
并创建一个内部数据库
createdb --owner=djangogirls djangogirls_db # this is the name of the inner database and that name of the inner you have to use in `settings.py`!
这是您需要告诉Django的数据库 这个用户和这个密码。
因此,您设置了settings.py
:
nano mysite/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'djangogirls_db',
'USER': 'djangogirls',
'PASSWORD': 'djangogirls',
'HOST': 'localhost',
'PORT': '',
}
}
然后做:
python manage.py migrate
如果事情不起作用,则必须杀死postgres才能重新启动。
# In linux, you monitor servers by:
ps aux | grep postgres
# the line with databasename - the first one - that number you use to kill the process
kill <number>
# e.g. the line
# <yourname> 30453 0.0 0.0 14760 2780 pts/6 S+ 08:36 0:00 grep --color=auto postgres
但是我不知道您如何在Windows中终止postgres进程...(也许您可以在Windows中添加如何执行该操作?)
通过以下方式重启postgresql:
pg_ctl -D db_djangogirls -l logfile start