はい、最近Ubuntu 10.04から12.04にアップグレードしました
多くの問題に直面するだけです。私はこれが初心者なので、もう少し詳しく、または段階的に説明する必要があるかもしれません
私はDjangoプロジェクトが完全に機能していましたが、今ではこのエラーが発生します:
File "/usr/local/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 16, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
またはpython:
>>> import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.linux-i686/Egg/MySQLdb/__init__.py", line 19, in <module>
File "build/bdist.linux-i686/Egg/_mysql.py", line 7, in <module>
File "build/bdist.linux-i686/Egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
とにかく、MySQL-pythonに問題があると思ったので、再インストールしてみました。
Sudo pip install mysql-python
与える:
Downloading/unpacking mysql-python
Running setup.py Egg_info for package mysql-python
The required version of distribute (>=0.6.28) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U distribute'.
(Currently using distribute 0.6.24dev-r0 (/usr/lib/python2.7/dist-packages))
Complete output from command python setup.py Egg_info:
The required version of distribute (>=0.6.28) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U distribute'.
(Currently using distribute 0.6.24dev-r0 (/usr/lib/python2.7/dist-packages))
----------------------------------------
Command python setup.py Egg_info failed with error code 2 in /tmp/pip-build/mysql-python
Storing complete log in /home/nabeel/.pip/pip.log
私が行った場合 :
Sudo easy_install -U distribute
それはこのエラーを与えます:
Searching for distribute
Reading http://pypi.python.org/simple/distribute/
Reading http://packages.python.org/distribute
Best match: distribute 0.6.29
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.29.tar.gz#md5=1aad767bfca8bebaccafee25f85696cf
Processing distribute-0.6.29.tar.gz
Running distribute-0.6.29/setup.py -q bdist_Egg --dist-dir /tmp/easy_install-K8ZuMX/distribute-0.6.29/Egg-dist-tmp-Fj0gj_
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg
Egg installation
Patching...
Renaming /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg to /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg.OLD.1350776909.4
Patching complete.
Relaunching...
Traceback (most recent call last):
File "/usr/local/bin/easy_install", line 9, in <module>
load_entry_point('distribute==0.6.8', 'console_scripts', 'easy_install')()
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 1708, in main
with_ei_usage(lambda:
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 1696, in with_ei_usage
return f()
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 1712, in <lambda>
distclass=DistributionWithoutHelpCommands, **kw
File "/usr/local/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/local/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 236, in run
self.easy_install(spec, not self.no_deps)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 471, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 501, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 680, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 957, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/command/easy_install.py", line 946, in run_setup
run_setup(setup_script, args)
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/sandbox.py", line 29, in run_setup
lambda: execfile(
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/sandbox.py", line 70, in run
return func()
File "/usr/local/lib/python2.7/site-packages/distribute-0.6.8-py2.7.Egg/setuptools/sandbox.py", line 31, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 131, in <module>
File "/tmp/easy_install-K8ZuMX/distribute-0.6.29/distribute_setup.py", line 368, in _before_install
File "/tmp/easy_install-K8ZuMX/distribute-0.6.29/distribute_setup.py", line 441, in _fake_setuptools
File "/tmp/easy_install-K8ZuMX/distribute-0.6.29/distribute_setup.py", line 450, in _relaunch
NameError: global name '_cmd1' is not defined
再び今私はこのリンクに行きました: http://pypi.python.org/pypi/setuptools/0.6c11 ダウンロードしてsetuptoolsをインストールします。また、最新のディストリビューション0.6.8をここ: http://pypi.python.org/pypi/distribute/0.6.8
以前のバージョンをアンインストールしてインストールし直してみましたが、うまくいかないようです。 Python 2.7.3をインストールしました
誰かが私に何が起こっているのか説明してください... Mysqldbをインストールする方法...
また、これらのコマンドをシェルで実行しました:
Sudo apt-get install mysql-server mysql-client python-mysqldb libmysqlclient-dev python-dev
しかし、それは助けにはなりませんでした...
UPDATE I JUST DID THIS AND GOT THIS ERROR:
nabeel@nabeel-pc:~$ pip uninstall setuptools
Uninstalling distribute:
/usr/bin/easy_install
/usr/bin/easy_install-2.7
/usr/lib/python2.7/dist-packages/distribute-0.6.24dev_r0.Egg-info
/usr/lib/python2.7/dist-packages/easy_install.pyc
/usr/lib/python2.7/dist-packages/pkg_resources.pyc
/usr/lib/python2.7/dist-packages/setuptools
/usr/lib/python2.7/dist-packages/site.pyc
/usr/share/pyshared/easy_install.py
/usr/share/pyshared/pkg_resources.py
/usr/share/pyshared/site.py
Proceed (y/n)? y
Successfully uninstalled distribute
nabeel@nabeel-pc:~$ Sudo easy_install -U distribute
Searching for distribute
Reading http://pypi.python.org/simple/distribute/
Reading http://packages.python.org/distribute
Best match: distribute 0.6.29
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.29.tar.gz#md5=1aad767bfca8bebaccafee25f85696cf
Processing distribute-0.6.29.tar.gz
Running distribute-0.6.29/setup.py -q bdist_Egg --dist-dir /tmp/easy_install-Xcer8d/distribute-0.6.29/Egg-dist-tmp-K0E7gP
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg
Egg installation
Already patched.
After install bootstrap.
Creating /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg-info
Creating /usr/local/lib/python2.7/site-packages/setuptools.pth
Removing distribute 0.6.8 from easy-install.pth file
Adding distribute 0.6.29 to easy-install.pth file
Installing easy_install script to /usr/local/bin
Installing easy_install-2.7 script to /usr/local/bin
Installed /usr/local/lib/python2.7/site-packages/distribute-0.6.29-py2.7.Egg
Processing dependencies for distribute
Finished processing dependencies for distribute
nabeel@nabeel-pc:~$ Sudo pip install mysql-python
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
UPDATE 2:MySQLdbもインストールした環境にvirtualenvをインストールできました。サーバーの実行中に発生するエラーは次のとおりです。
Sudo python manage.py syncdb
私はこのエラーを受け取ります:
File "/usr/local/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 16, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
(myenv)nabeel@nabeel-pc:~/workspace/gteam/metrics$ python
Python 2.7.3 (default, Oct 6 2012, 21:57:36)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> exit()
Virtualenvの使用
まず最初に。 Mysql、Setuptools、およびいくつかの必需品があることを確認してください:
Sudo apt-get install mysql-server
Sudo apt-get install python-setuptools python-dev build-essential
ここでVirtualEnvをインストールします。
Sudo easy_install -U virtualenv
仮想環境を作成します。 ドキュメント が言うように:virtualenv is a tool to create isolated Python environments.
これは、競合が発生する可能性が本当に小さいことを意味します。ここで、「myenv」は環境にアクセスできるフォルダの名前なので、必要な場所に作成します。
virtualenv --distribute myenv
次に、「myenv」ディレクトリに移動し、これを実行してアクティブ化します。
source myenv/bin/activate
MySQL-pythonを動作させるにはlibmysqlclient-devをインストールする必要があります:
Sudo apt-get install libmysqlclient-dev
これで、MySQL-pythonをインストールする準備ができました。
pip install MySQL-python
そして、すべてが機能しているはずです。
その環境でもう働きたくないときは、ターミナルに次のように書いてください:
deactivate
[〜#〜]更新[〜#〜]:
この答えは投票を増やし続けているので、最近私のお気に入りの環境となっているcondaを使用して同じことを行う方法を紹介しましょう。最初にanacondaをインストールする必要があります(condaといくつかのパッケージを含む軽量バージョンであるminicondaもインストールできると思います) ここ Linux、OS X、Windows用のインストーラーがあります。大きなファイルですが、すぐにインストールできるコンパイル済みのパッケージがたくさん含まれています。すでにanacondaがインストールされていると仮定すると、次のコマンドを実行するだけです。
conda create -n mysql-env python
mysql-env
は環境の名前(好きな名前にできます)であり、python
はインストールされるpythonのデフォルトバージョンです(現在、2.7。 10)。または、他のバージョンのpython with conda create -n my-new-env python=3.4
をインストールします。
次に、環境をアクティブ化します。
source activate mysql-env
最後にmysql-pythonをインストールします。
conda install MySQL-python
(conda install mysql-python
も機能すると思います)
そして、それだけです。
easy_install -U distribute
問題を解決しました
一部のUbuntuインストールでは、libmysqlclient-devも検討する必要があります。
Sudo apt-get install python-dev libmysqlclient-dev
それも私を後退させました。他のレスポンダーはおそらくすでにインストールしていて、それが必要であることを認識していませんでした。