Python 3 升级:uninstall/reinstall 3.6-3.7 — 现在我无法安装 Django 2.1:错误消息:[没有名为 Django 的模块]

Python 3 Upgrade: uninstall/reinstall 3.6-3.7 — Now I cannot install Django 2.1: Error msg: [ No module named Django ]

问题: 在 Mac 上OS...

我现在最大的问题是我不知道如何安装 Django。

(查看此结尾post 我能想到的所有测试)

备注:

学习 Python 语法几个月后,我想扩展到创建一个非常基本的 101 网络应用程序。所以我开始学习 Django。我意识到我真的不知道任何移动部件在哪里或如何工作:pip、python、django、PyCharm、OS 等......一起工作或它们在哪里甚至安装。我从未听说过……包、包管理器、pip、路径或框架。所以,我决定尝试深入研究并真正了解它是如何工作的。我一直这样做的最好方法是……全部撤消,然后将它们重新组合在一起。


问题和测试:

在终端中:

python -m Django --version

结果:

/Library/Frameworks/Python.framework/Versions/3.7/bin/python3: No module named Django

好的...尝试安装 Django:

pip install Django==2.1

结果:

Could not find a version that satisfies the requirement Django==2.1 (from versions: 1.1.3, [LARGE BLOCK OF VERSION NUMBERS, ALL IN RED] 1.11.15)
No matching distribution found for Django==2.1

试图弄清楚 "path" 的真正含义:

>>> import sys
>>> for p in sys.path:
        print(p)

结果:

/Users/MichaelPerkins/Documents
/Library/Frameworks/Pthon.framework/Versions/3.7/lib/python37.zip
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload
/Users/MichaelPerkins/Library/Python/3.7/lib/python/site-packages
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages

最后...只是为了看看我输入的所有内容:

pip list

结果:

Package                                Version 
-------------------------------------- --------
altgraph                               0.10.2  
bdist-mpkg                             0.5.0   
bonjour-py                             0.3     
macholib                               1.5.1   
matplotlib                             1.3.1   
modulegraph                            0.10.4  
numpy                                  1.8.0rc1
pip                                    18.0    
py2app                                 0.7.3   
pyobjc-core                            2.5.1   
pyobjc-framework-Accounts              2.5.1   
pyobjc-framework-AddressBook           2.5.1   
pyobjc-framework-AppleScriptKit        2.5.1   
pyobjc-framework-AppleScriptObjC       2.5.1   
pyobjc-framework-Automator             2.5.1   
pyobjc-framework-CFNetwork             2.5.1   
pyobjc-framework-Cocoa                 2.5.1   
pyobjc-framework-Collaboration         2.5.1   
pyobjc-framework-CoreData              2.5.1   
pyobjc-framework-CoreLocation          2.5.1   
pyobjc-framework-CoreText              2.5.1   
pyobjc-framework-DictionaryServices    2.5.1   
pyobjc-framework-EventKit              2.5.1   
pyobjc-framework-ExceptionHandling     2.5.1   
pyobjc-framework-FSEvents              2.5.1   
pyobjc-framework-InputMethodKit        2.5.1   
pyobjc-framework-InstallerPlugins      2.5.1   
pyobjc-framework-InstantMessage        2.5.1   
pyobjc-framework-LatentSemanticMapping 2.5.1   
pyobjc-framework-LaunchServices        2.5.1   
pyobjc-framework-Message               2.5.1   
pyobjc-framework-OpenDirectory         2.5.1   
pyobjc-framework-PreferencePanes       2.5.1   
pyobjc-framework-PubSub                2.5.1   
pyobjc-framework-QTKit                 2.5.1   
pyobjc-framework-Quartz                2.5.1   
pyobjc-framework-ScreenSaver           2.5.1   
pyobjc-framework-ScriptingBridge       2.5.1   
pyobjc-framework-SearchKit             2.5.1   
pyobjc-framework-ServiceManagement     2.5.1   
pyobjc-framework-Social                2.5.1   
pyobjc-framework-SyncServices          2.5.1   
pyobjc-framework-SystemConfiguration   2.5.1   
pyobjc-framework-WebKit                2.5.1   
pyOpenSSL                              0.13.1  
pyparsing                              2.0.1   
python-dateutil                        1.5     
pytz                                   2013.7  
scipy                                  0.13.0b1
setuptools                             18.5    
six                                    1.4.1   
xattr                                  0.6.4   
zope.interface                         4.1.1  

在PyCharm中:

当我打开一个我在这些 uninstall/reinstalls 之前创建的项目并尝试 运行 一个新的或现有的 .py 文件时,我得到...

"/Users/MichaelPerkins/Library/Mobile Documents/com~apple~CloudDocs/Python Projects/BlackJack/venv/bin/python" "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevconsole.py" 59523 59524
dyld: Library not loaded: /Library/Frameworks/Python.framework/Versions/3.6/Python
  Referenced from: /Users/MichaelPerkins/Library/Mobile Documents/com~apple~CloudDocs/Python Projects/BlackJack/venv/bin/python
  Reason: image not found
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

但是,当我创建一个新项目时,它会选择 Python 3.7.

的新版本
import(sys)
print(sys.version)

结果:

/Users/MichaelPerkins/Projects/Test_1/venv/bin/python /Users/MichaelPerkins/Projects/Test_1/version.py
3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)]

Process finished with exit code 0

如果 python 命令在您的系统中启动 Python 3.7,您可以使用

全局安装 Django
python -m pip install django
# or
pip3 install django

当您创建第二个项目时,PyCharm 为您做了一件很酷的事情。它创建了 virtual environment - 一种新的解释器,它是独立的并且只能用于您的项目(它保存在 /Users/MichaelPerkins/Projects/Test_1/venv/bin/python 中)。当您在 PyCharm 中打开终端时,您应该会在提示符前看到 (venv)。这意味着您已经在此项目中激活了 virtualenv,您只需使用 pip install django 即可安装 Django。请记住,当您使用 virtualenv 时,每次启动新项目时都必须安装 django。

您的旧项目正在尝试使用旧的 3.6 解释器,我猜它已经不存在了。要解决此问题,您必须在 File -> Settings -> Project: -> Project Interpreter

中提供有效 Python 解释器的路径

在那里,您可以按右上角的齿轮,您可以指向 Python 3.7 安装路径或为此项目创建新的 virtualenv