Pymysql установлен, но не найден - PullRequest
0 голосов
/ 16 октября 2019

Я даже получил новый Python (общий) хостинг и пытаюсь проверить соединение с базой данных с помощью pymysql. Я установил pymysql с pip и протестировал его через Putty с import pymysql. Получение только >>> позволяет мне думать, что pymysql успешно установлен. Файлы вроде бы на своем месте: в files/python-pip есть папки mysql_pymysql, pymysql и PyMySQL-0.9.3.dist.info.

Затем я написал простой скрипт, который должен проверять соединение с базой данных и регистрировать результаты теста,Но когда я проверяю соединение с базой данных с

import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

, я получаю сообщение об ошибке ImportError: No module named 'pymysql'.

Что я делаю неправильно и как я могу подключиться к базе данных?

PS : пробовал тоже так:

import pymysql.cursors
import MySQLdb
db=MySQLdb.connect(user="bb",passwd="bb",db="db")
c = db.cursor()

но с тем же отрицательным результатом. Весь сценарий:

#!/usr/local/python/bin/python3
import logging



# add filemode="w" to overwrite
logging.basicConfig(filename="sample0.log", filemode='w', level=logging.INFO, format='%(name)s - %(levelname)s - %(message)s')

#logging.debug("This is a debug message")
#logging.info("Informational message")
#logging.error("An error has happened!")
try:
    import pymysql.cursors
    import MySQLdb
    db=MySQLdb.connect(user="user",passwd="pass",db="db")
    c = db.cursor()
except Exception as e:
    logging.error("Exception occurred", exc_info=True)
    print("Content-Type: text/html")# HTML is following
    print()
    print(e)
    print("<TITLE>CGI script output ok</TITLE>")
    print("<H1>This is my first CGI script</H1>")
    print("Hello, world!")
    import sys
    print(sys.path)

Информация от хостера :

1. Create folder:
$ mkdir "$HOME/files/python-pip" "$HOME/tmp/.cache" -p

2. Add environment variable to account:
$ printf "\n%s\n%s\n%s\n%s\n%s\n%s\n" \
"# needed for python pip" \
"export PIP_TARGET=$HOME/files/python-pip" \
"export TMPDIR=$HOME/tmp" \
"export PYTHONPATH=$HOME/files/python-pip" \
"export XDG_CACHE_HOME=$HOME/tmp/.cache" \
"# finished setting up python-pip" \
>> "$HOME/etc/bash/profile" \
&& source "$HOME/etc/bash/profile"

3. download PIP install files:
$ wget -q "https://bootstrap.pypa.io/get-pip.py" -O "$HOME/files/get-pip.py"

4. run PIP install:
$ python "$HOME/files/get-pip.py"

5. Cleanup after install:
$ rm "$HOME/files/get-pip.py"

6. Use PIP:
$ python -m pip search "MODULE_HERE
$ python -m pip install "MODULE_HERE"

7. Install MySQL handler for Python
$ python -m pip install pymysql
...