mac运行python项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac运行python项目相关的知识,希望对你有一定的参考价值。

参考技术A 转自:https://blog.csdn.net/hou_manager/article/details/79555809

一、Python 介绍

Python介绍

Python3在2008年12月3日正式发布, 但是有很多library还是使用Python2.7,所以需要在Mac里面同时装这两个版本,并且和系统所使用的Python区分开来呢?今天要写的是如何第一次就正确安装好,并且切换预设版本,不在误用系统的Python。

二、安装

STEP 1 安装Xcode

安装完成后 安装 Xcode command line tool

1xcode-select --install

STEP 2 安装Homebrew

可以参考官网或者直接粘贴:

1ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

STEP 3 安装Python

接下来要正式进入安装Python的步骤了!

首先,输入

1python --version 

这是Mac系统要使用的Python,不去动它。所以现在我们要用homebrew来安装自己使用的Python。

利用homebrew搜索Python

1brew search python

开始安装:

1brewinstall python

python3安装成功

 若想安装python2,执行以下命令

1brewinstall python@2

表示python安装成功

查看安装的目录

1open /usr/local/Cellar

STEP 4 设定路径$PATH (不和系统Python干扰)

什么是路径$PATH呢?

还记得我们在装Python的时候,输入了brew,

系统就自动会知道要开始跑homebrew。

系统到底怎么知道我们的brew在哪里?

这就是$PATH的用途了!

1echo $PATH

如图所示

分号(:)是分隔的意思

所以当你在terminal里面输入brew时

系统就会开始从/usr/bin找起

如果在/usr/bin里面找不到的话

就会往下一个/bin去搜寻,以此类推

现在,我们回到文件夹去看

brew其实就在/usr/local/bin里面

所以现在的问题就是,系统在/usr/bin里面也有一份Python

现在我们在/usr/local/Cellar里面也装了Python

这样在terminal打上python指令时,谁会被开启呢?

因为路径有顺序,所以它会先找到系统的Python

现在就要来解决这个问题

1sudo emacs/etc/paths

sudo让我们取得管理员权限

用emacs这个程序编辑路径档案

terminal会要求输入密码

如果不是这个顺序,调整成这个顺序。

control + k:把一行字剪下来

control + y:把字粘贴

control + x + s:存盘

control + x + c:关掉emacs

这时,重启terminal 会看到变化,再打一次

1echo $PATH

STEP 5 安装完成,确认结果

这样就完成啰!

其实python3本身比较不会跟其他人打架

在 mac 上安装 MySQL-python

【中文标题】在 mac 上安装 MySQL-python【英文标题】:Installing MySQL-python on mac 【发布时间】:2013-07-10 02:32:21 【问题描述】:

我正在使用 OSX 10.8 和 PyCharm 进行 Python 开发项目。我已经使用网站上的说明为 mac 安装了 MySQL-python

http://blog.infoentropy.com/MySQL-python_EnvironmentError_mysql_config_not_found

但是,运行项目给我这个错误:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
  Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so
  Expected in: flat namespace
 in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so

错误中提到的文件存在于位置 - /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so

整个错误信息是-

/usr/local/bin/python2.7-32 /Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py testserver --addrport 8000
Running on development server
Traceback (most recent call last):
  File "/Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/south/management/commands/__init__.py", line 10, in <module>
    import django.template.loaders.app_directories
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/template/loaders/app_directories.py", line 23, in <module>
    mod = import_module(app)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
    from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 4, in <module>
    from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/admin/util.py", line 6, in <module>
    from django.db import models
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
    return import_module('.base', backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
  Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so
  Expected in: flat namespace
 in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so

Process finished with exit code 1

【问题讨论】:

按照这个答案在macos上使用python3+sqlalchemy+mysql ***.com/a/54031440/4252616 【参考方案1】:

您应该先通过Homebrew 安装 MySQL,以使 python-mysql 在 OS X 上正常工作。

pip uninstall MySQL-python
brew install mysql
pip install MySQL-python

【讨论】:

你能给出原因吗? 包从源码编译,需要mysql开发头文件。当您使用 homebrew 安装 mysql 软件包时,这些也会被安装。 你不知道你为我节省了多少时间!非常感谢! 捕获了部分安装的 brew 和 pip 之间的决斗配置。我必须执行以下操作: $ brew link mysql Linking /usr/local/Cellar/mysql/5.7.20... 错误:无法符号链接 bin/my_print_defaults 目标 /usr/local/bin/my_print_defaults 是属于 mysql 的符号链接-连接器-c。您可以取消链接: brew unlink mysql-connector-c $ brew unlink mysql-connector-c Unlinking /usr/local/Cellar/mysql-connector-c/6.1.11... 删除 48 个符号链接 $ brew link mysql Linking /usr /local/Cellar/mysql/5.7.20... 创建了 93 个符号链接 $ pip install MySQL-python【参考方案2】:

确保您拥有最新版本的 Xcode,包括命令行工具。我只是从应用商店下载了 2GB 的更新。我有一个类似的问题,特别是this,并且解决了它。

干杯!

【讨论】:

【参考方案3】:

我很久以前用自制软件安装了 mysql,所以当我在升级 OSX 后遇到问题时,我用 brew reinstall mysql@5.7 重新安装了它(我运行了 5.7.10)并重新安装了 MySQL-python,我希望它会得到解决。出现上述错误。

它真的让我很头疼,在花了几个小时之后,我不知道该做什么,从源代码和所有东西重建。为 mysql 尝试了其他 python 应用程序,但它是同一件事。

我不知何故意识到 MySQL-python 构建的客户端是针对错误版本的,所以我检查了 /usr/local/opt/mysql 链接到的位置,它链接到了我通过 dmg 安装的先前版本,例如7年前!一旦我删除了那个链接,然后运行brew link mysql,然后创建了一个新的 virtualenv 并从头开始安装了所有的包,它终于可以工作了!

【讨论】:

【参考方案4】:

如果你使用 python 喜欢:

import mysql.connector

你要先下载mysql Connector 这里是链接link

【讨论】:

以上是关于mac运行python项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在linux环境下运行python项目

mac电脑安装django ,运行django报错解决

python 1MAC Draw Turtle迷你项目

mac的pycharm怎么用?

转:python项目部署到linux

mac系统electron项目打包出现:Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT