ম্যাক ওএস এক্সে মাইএসকিউএল-পাইথন ইনস্টল করার চেষ্টা করার সময় জাহান্নামের একটি জগতে ডিবাগিং


2

এনটহাউড পাইথন ডিস্ট্রিবিউশন থেকে পাইথন 7.0 সহ ম্যাক ওএস এক্স 10.6 এ, আমি কোনও ভাগ্য ছাড়াই মাইএসকিউএল-পাইথনটি ইনস্টল করার জন্য সপ্তাহ এবং সপ্তাহ চেষ্টা করেছি। আমি যে সমস্যার সমাধান করেছি তাতে অনেকগুলি অন্যান্য পোস্টে বর্ণিত হয়েছে এবং আমি নিশ্চিত যে আমি সেগুলি সবই পড়েছি, তবে এখনও এই সমস্যাটি ঠিক করতে পারছি না। আমি 64 মিমি ওএস এক্সের জন্য বিভিন্ন মাইএসকিউএল প্যাকেজ ইনস্টল ও পুনরায় ইনস্টল করার চেষ্টা করেছি তবে শেষ পর্যন্ত এটি স্ক্র্যাচ থেকে সংকলন করেছি। মাইএসকিউএল, যতদূর আমি জানি, /usr/local/mysql-5.5.9-osx10.6-x86/ ডিরেক্টরিতে কাজ করে এবং জীবনযাপন করে।

আমি "sudo setup.py ইনস্টল" ব্যবহার করে মাইএসকিউএল-পাইথন -২.২.৩ ইনস্টল করতে সক্ষম হয়েছি। তবে আমি যখন এটি আমদানি করি তখন ত্রুটিটি পাই:

$ python
Enthought Python Distribution -- www.enthought.com
Version: 7.0-2 (64-bit)

Python 2.7.1 |EPD 7.0-2 (64-bit)| (r271:86832, Dec  3 2010, 15:56:20) 
[GCC 4.0.1 (Apple Inc. build 5488)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>

  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so
  Reason: image not found

আমি এখানে দেখার মতো অন্যান্য পোস্টারগুলিতে পরামর্শ দিয়েছিলাম, _ মাইকিউএইচএল.তুল কী ব্যবহার করে রেফারেন্স দিচ্ছে:

$ otool -L /Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so
/Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so:
    libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 438.0.0)

সঠিক ফাইলটি এখানে উপস্থিত বলে মনে হচ্ছে:

$ ls -al /usr/local/mysql-5.5.9-osx10.6-x86/lib/libmysqlclient.16.dylib
-rwxr-xr-x  1 root  wheel  3539752 Jan 20  2011 /usr/local/mysql-5.5.9-osx10.6-x86/lib/libmysqlclient.16.dylib

_Mysql.so এই ফাইলটি সনাক্ত করতে আমি বেশ কয়েকটি পদ্ধতির চেষ্টা করেছি:

  1. অন্যদের পরামর্শ মতো সঠিক ফাইলটিতে প্রতীকী লিঙ্ক তৈরি করা:

    do sudo ln -s /usr/local/mysql-5.5.9-osx10.6-x86/lib/libmysqlclient.16.dylib /usr/lib/libmysqlclient.18.dylib

যখন আমি এটি করি, আমি একটি নতুন ত্রুটি পেয়েছি:

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>

  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so
  Reason: no suitable image found.  Did find:
    /usr/lib/libmysqlclient.18.dylib: mach-o, but wrong architecture
  1. DYLD_LIBRARY_PATH সেট করা হচ্ছে, নিম্নলিখিত হিসাবে (পূর্ববর্তী প্রতীকী লিঙ্কটি অপসারণের পরে):

    $ ডিওয়াইএলডি_এলআইবিআরএইপিএটিএফ = $ ডিওয়াইএলডি_আইবিএলআরএইপিএটিএইচ রফতানি করুন:

তারপরে আমি প্রথমটির মতো একই ত্রুটি পেয়েছি:

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>

  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/foo/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so
  Reason: image not found
  1. নেডকে রেফারেন্সটি সংশোধন করার জন্য ইনস্টল_নাম_টুল ব্যবহার করার পরামর্শ দেওয়ার মতো চেষ্টা করেছি

    ~ / .python- ডিম ডিরেক্টরি থেকে:

    18 থেকে 16 পরিবর্তন করার চেষ্টা করা হচ্ছে: do sudo install_name_tool-বিনিময় libmysqlclient.18.dylib /usr/local/mysql-5.5.9-osx10.6-x86/libmysqlclient.16.dylib _mysql.so

    পদ্ধতির 2: 18 থেকে 18 পরিবর্তন করার চেষ্টা করা হয়েছে: sudo install_name_tool-বিনিময় libmysqlclient.18.dylib /usr/local/mysql-5.5.9-osx10.6-x86/lib/mysql/libmysqlclient.18.dylib _mysql.so

আমি যখন এগুলি চেষ্টা করি তখন আমি ত্রুটিটি পাই:

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>

ImportError: dynamic module does not define init function (init_mysql)

এটি ঠিক করার জন্য কী করা যায় তার কোনও ধারণা? আমি সত্যিই এই প্যাকেজটি কাজ করতে চাই ... আমি কিছুক্ষণ চেষ্টা করেছি এবং এটি কাজ করতে পারিনি। আমি বুঝতে পারছি এটি একটি সাধারণ সমস্যা তবে আমি পোস্ট করা সমাধানের কোনও কাজ করতে পারিনি।

আপনার সাহায্যের জন্য অনেক ধান্যবাদ।


আমি এই সমাধানের প্রতি পক্ষপাতদুষ্ট, তবে আমি দৃ strongly ়ভাবে মনে করি যে ম্যাকপোর্টগুলি ব্যবহার করে আপনার সমস্যাগুলি সমাধান হতে পারে । হ্যাঁ, আপনার কাছে কয়েকটি ছোট অ্যাপ্লিকেশনগুলির দ্বিগুণ সংস্করণ থাকবে তবে ম্যাক ওএস এক্সে এই প্যাকেজগুলি একসাথে কাজ করার জন্য কঠোর পরিশ্রম করে এমন একটি বড় সম্প্রদায়টিতে আপনার অ্যাক্সেস থাকবে your আপনার ক্ষেত্রে আপনার py27-mysqlবন্দরটি লাগবে ।
ফিদেলি

আপনি কেন 'থ্রেডসেকে সেট করুন = সাইট.cfg এ মিথ্যা' সেট করছেন?
গ্রাহাম ডাম্পলেটন

উত্তর:


1

প্রথমে আমি একটি টার্মিনাল খুলব এবং:

python <enter>
import sys <enter>
print sys.path <enter>

আপনার প্রাসঙ্গিক গ্রন্থাগার কি পথে?

ম্যাকপোর্টস তত্ত্ব (উপরে @ ফিডেলি) এর উপরে হোমব্রিউ http://mxcl.github.com/homebrew/ নামে আরও একটি পিএমএস রয়েছে । এটি ম্যাকের প্যাকেজ পরিচালনার জন্য আশ্চর্যজনকভাবে ভাল কাজ করে।

তবে, আমি একটি জি 5 পিপিসি 64 এ এটি করে যাচ্ছি এমন অতিরিক্ত ব্যথা সহ আমি এটি (সম্পূর্ণ সংকলিত) করেছি। আমি যেভাবে এটি কাজ করেছিলাম তা হ'ল পাইথন, পাইথন-মাইএসকিউএল, মাইএসকিউএল এবং Mod_wsgi সমস্ত উত্স থেকে সংকলন করা। এটি সম্ভব তবে প্যাকেজগুলির মধ্যে আর্কিটেকচারের সাথে মেলে না এমন লোকেরা যে প্রধান সমস্যাটি চালায় into পিপিসিতে এটি করা থেকে আমার নোটগুলি এখানে রইল। আপনি যা পারেন তা থেকে এটি বের করুন এবং আপনার অতিরিক্ত সহায়তার প্রয়োজন হলে দয়া করে আমাদের জানান। মনোযোগ দেওয়ার মূল অংশটি হ'ল প্রতিটি সংকলনের আগে আর্চএফএলএলজিএস রফতানি করা। এটি আপনার কোনও আর্কিটেকচার ম্যাচ নিশ্চিত করবে। যেমনটি আমি বলেছি নীচে পিপিসি C৪ পরিবেশের জন্য আমি যা করেছি তবে আপনি কেবল প্রাসঙ্গিকটি আপনার প্রাসঙ্গিক প্ল্যাটফর্মের সাথে প্রতিস্থাপন করতে পারেন যেমন x86_64 যেহেতু আপনি 10.6 চালাচ্ছেন আমরা জানি আপনার একটি ইন্টেল চিপ রয়েছে। আপনি যথাযথ সফ্টওয়্যার সংস্করণগুলিকে এড়ানোতে পারেন কারণ এগুলি সমস্ত প্রাসঙ্গিক হওয়া উচিত নয়।

সিডিনোট: এটি প্রদর্শিত হয় যে আপনার মাইএসকিউএল 32 বিট তবে আপনার পাইথনটি 64 বিট।

সম্মুখ বিবরণ:

  • লক্ষ্য প্ল্যাটফর্মটি ছিল ওএসএক্স 10.5.8 (পিপিসি 64)।
  • লক্ষ্যটি ছিল সমস্ত ডিস্ট্রিবিউশনগুলি "ফ্যাট" বাইনারি হিসাবে সংকলন করা অর্থ এটি x86, পিপিসি, পিপিসি 64, এবং x86_64 সমর্থন করবে।
  • আপনি আপনার টার্গেট প্ল্যাটফর্মের জন্য উপযুক্ত দেখায় এটি চালিত করুন।

This file will go through the steps of how to
install Python, MySQL, MySQLdb-Python, and
mod_wsgi on clean MacOSX 10.5.8 all 64Bit
#################################################
1.Download Python Source -> Plan 2.7
2.Download MySQL Source -> Plan 5.1.50
3.Download MySQLdb-Python Source -> Plan 1.2.3
4.Download mod_wsgi -> Plan 1.3.3

Untar all of the above and prep for Python
#################################################
1. export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
2. ./configure --with-framework-name=Python64 --with-universal-archs=all --enable-framework --enable-universalsdk=/ MACOSX_DEPLOYMENT_TARGET=10.5
3. make
4. sudo make install
5. Add to /etc/paths
-> /usr/local/bin
6. Modify /etc/profile
-> if [ -x /usr/libexec/path_helper ]; then
-> PATH=""
-> eval `/usr/libexec/path_helper -s` <- Be sure to note these are backticks ie Shell expansion
-> fi
7. Reboot the system
8. Test Python Intereter is @2.7

Compile and Install mod_wsgi
#################################################
1. export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
2. ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/bin
3. make
4. sudo make install
5. Add to /etc/apache2/httpd.conf
-> LoadModule wsgi_module libexec/apache2/mod_wsgi.so
6. tail -f /var/log/apache2/error_log
7. sudo apachectl stop
8. sudo apachectl start

Compile and Install MySQL
#################################################
NOTE: It has been said to also set CFLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
NOTE: It has been said to also set CXXFLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
1. export ARCHFLAGS='-arch ppc64'
2. CFLAGS="-arch ppc64' CXXLAGS="-arch ppc64' ./configure -prefix=/usr/local/mysql -with-server-suffix=-standard -enable-thread-safe-client -enable-local-infile -enable-shared -with-zlib-dir=bundled -with-big-tables -with-readline -with-plugins=all -without-docs
3. make
4. sudo make install
5. cd /usr/local/mysql
6. sudo ./bin/mysql_install_db --user=mysql
7. sudo chown -R mysql ./var
8. create file com.mysql.mysqld.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>Program</key>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>mysql</string>
<key>WorkingDirectory</key>
<string>/usr/local/mysql</string>
</dict>
</plist>

9. sudo mv ~/Desktop/com.mysql.mysqld.plist /Library/LaunchDaemons
10. sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
11. sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
12. edit /etc/paths
-> /usr/local/mysql/bin
13. Quit all running terminals
14. run mysql_secure_installation

Compile and Install MySQLdb-Python
#################################################
NOTE: According to the compilation flags above it "should" be safe to leave Threadsafe at true
NOTE: setuptools must be installed prior to attempting the below
1. Set Threadsafe=False in site.cfg
2. export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
3. python setup.py build
4. sudo python setup.py install
5. python-all <-Universal app, python is aliased to python32 so the next step will fail
6. import MySQLdb
7. hopefully no errors

0 comments
October 4, 2010 by Chris Barker
Django Deployment on Leopard PPC64 Research
See Step By Step HOWTO.txt
#################################################

Links that have proven useful
#################################################
http://tickletik.blogspot.com/2008/12/python-and-mysql-on-64bit.html <-Best all inclusive article
http://mysql-python.blogspot.com/2008/03/i-am-not-dead.html
http://mail.python.org/pipermail/pythonmac-sig/2008-June/020123.html
http://www.stereoplex.com/2008/feb/5/mac-os-x-command-and-manual-search-path-path-and-m/
http://www.softec.lu/site/DevelopersCorner/MasteringThePathHelper
http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
http://diymacserver.com/installing-mysql/compiling-mysql-51x-in-64-bits-mode-on-leopard/
http://mysql-python.sourceforge.net/FAQ.html

Native MacOSX Leopard Bit Levels
#################################################
-Native Python (2.51) 32Bit
-Native Apache (2.2.14) 64Bit
-Native MySQL (N/A)

Build Out Python 64bit
#################################################
To Perform Universal Compilation
Execute the below prior to compiling
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
./configure --with-framework-name=Python64 --with-universal-archs=all --enable-framework --enable-universalsdk=/ MACOSX_DEPLOYMENT_TARGET=10.5

Adjusting The Path
------------------
Add /usr/local/bin to the top of /etc/paths
Modify /etc/profile to:
if [ -x /usr/libexec/path_helper ]; then
PATH=""
eval `/usr/libexec/path_helper -s`
fi


Build Out MySQL 64Bit
#################################################
CFLAGS="-arch ppc64" <-Perhaps not needed if export ARCHFLAGS is set first
CXXFLAGS="-arch ppc64" <-Perhaps not needed if export ARCHFLAGS is set first
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
./configure -prefix=/usr/local/mysql -with-server-suffix=-standard -enable-thread-safe-client -enable-local-infile -enable-shared -with-zlib-dir=bundled -with-big-tables -with-readline -with-plugins=all -without-docs
make
sudo make install

Build Out MySQLdb
#################################################
Set Threadsafe=False in site.cfg
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
python setup.py build
sudo python setup.py install

Build Out Apache 64Bit ??? Or Not
#################################################
No need to rebuild apache, it is native universal binary (Runs in 64bit Navtively)

Vhost notes
-----------
<VirtualHost *:80>

ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com

DocumentRoot /usr/local/www/documents

Alias /robots.txt /usr/local/www/documents/robots.txt
Alias /favicon.ico /usr/local/www/documents/favicon.ico

Alias /media/ /usr/local/www/documents/media/

<Directory /usr/local/www/documents>
Order allow,deny
Allow from all
</Directory>
WSGIPythonHome /Path/to/Python/
WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup example.com
WSGIScriptAlias / /usr/local/www/wsgi-scripts/myapp.wsgi

<Directory /usr/local/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

HTTPD.conf notes
----------------
LoadModule wsgi_module libexec/apache2/mod_wsgi.so


Build Out mod_wsgi
#################################################
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
./configure --with-apxs=/usr/sbin/apxs --with-python/path/to/python
make
sudo make install

Cleaning Up After Compiling
#################################################
make clean
make distclean

1

প্রবর্তিত ইপিডি আসলে মাইএসকিউএলডিবি উপলব্ধ থাকে, এটি কেবলমাত্র ডিফল্টরূপে ইনস্টল করা হয় না। এটি ইনস্টল করতে:

enpkg MySQL_python

এটি ভাল নথিভুক্ত নয়। এখানে সমস্ত al চ্ছিক প্যাকেজ রয়েছে: http://www.enthought.com/products/repository.php শুভকামনা!


0

যদি এটি জটিল করে তোলে তবে কেবল মাইএসকিএলডিবি ছেড়ে তার পরিবর্তে পিমিস্কিল ব্যবহার করুন - এটি কনফিগার করা সত্যিই সহজ। আমি জাঙ্গো দিয়ে কাজ করতে চেয়েছিলাম এবং মাইএসকিউএল ব্যবহার করার চেষ্টা করছিলাম তবে এটি একটি ত্রুটি দিচ্ছিল, তাই আমি পিমিস্কুএল ব্যবহার করে এটি সমাধান করেছি। এখানে কয়েক মিনিটের মধ্যে পাইমিস্কেল ইনস্টল এবং কনফিগার করার সহজ উপায়:

http://web-eng-help.blogspot.com/2010/09/install-mysql-5-for-python-26-and.html

যদি আপনি পিমিস্কএল এবং মাইএসকিএলডিবি উভয়ের মধ্যে পার্থক্য জানতে চান তবে আপনি এটির পরামর্শ নিতে পারেন:

https://stackoverflow.com/questions/7224807/what-actually-is-pymysql-and-how-it-differs-from-mysqldb-and-how-can-it-affect

তারা প্রায় একই উদ্দেশ্যে পরিবেশন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.