Столкнулся с той же проблемой после перехода на python 3. По-видимому, MySQL-python несовместим, поэтому согласно официальному django docs , установленному mysqlclient с помощью pip install mysqlclient
на Mac. Обратите внимание, что в документации упоминаются некоторые проблемы, связанные с ОС.
Цитирование из документов :
Предварительные условия
Возможно, вам потребуется установить заголовки разработки Python и MySQL и такие библиотеки:
sudo apt-get install python-dev default-libmysqlclient-dev
# Debian / Ubuntu
sudo yum install python-devel mysql-devel
# Red Hat / CentOS
brew install mysql-connector-c
# macOS (Homebrew) (в настоящее время ошибка. См. ниже)В Windows есть двоичные диски, которые можно установить без MySQLConnector / C или MSVC.
Примечание по Python 3: если вы используете python3, вам нужно установить python3-dev с помощью следующей команды:
sudo apt-get install python3-dev
# debian / Ubuntu
sudo yum install python3-devel
# Red Hat / CentOSПримечание об ошибке MySQL, Connector / C в macOS
См. Также: https: //bugs.mysql .com / bug.php? id = 86971
Версии MySQL Connector / C могут иметь неправильные параметры конфигурации по умолчанию, которые приводят к ошибкам компиляции при установке
mysqlclient-python
. (По состоянию на ноябрь 2017 года, это, как известно, справедливо для доморощенногоmysql-connector-c
и официального пакета)Модификация
mysql_config
решает эти проблемы следующим образом.Измените
# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "
на
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
Неправильная конфигурация ssl также может создавать проблемы; см., например,
brew info openssl
для получения подробной информации о macOS.Установка из PyPI
pip install mysqlclient
ПРИМЕЧАНИЕ. Колеса для Windows могут не выпускаться с исходным пакетом. Вы должны закрепить версию в вашем
requirements.txt
, чтобы не пытаться установить новейший пакет с исходным кодом.Установка из источника
- Загрузка источника по
git clone
или zipfile .- Настройка
site.cfg
python setup.py install
Я никогда раньше не слышал о VTK , но вот оно.
В программах с открытым исходным кодом хорошо то, что вы можете напрямую проверить исходный код. Еще лучше, если есть веб-браузер с контролем версий, мы можем поговорить об этом в Интернете следующим образом.
Давайте посмотрим vtkMassProperties
, о котором идет речь. 5.0.4 использует r1.28, а 5.4.2 использует r1.30. Вот разница между r1.28 и r.30 . Части, которые могут повлиять на вычисления объема, - это
vol[2] += (area * (double)u[2] * (double)zavg); // 5.0.4
vol[2] += (area * u[2] * zavg); // 5.4.2
и
kxyz[0] = (munc[0] + (wxyz/3.0) + ((wxy+wxz)/2.0)) /(double)(numCells); // 5.0.4
kxyz[0] = (munc[0] + (wxyz/3.0) + ((wxy+wxz)/2.0)) /numCells; // 5.4.2
, но все изменения мне кажутся удовлетворительными.
Следующими подозрительными являются vtkMarchingCubes
. Разница между r1.1.6.1 и 1.5 .
self->UpdateProgress ((double) k / ((double) dims[2] - 1)); // 5.0.4
self->UpdateProgress (k / static_cast<double>(dims[2] - 1)); // 5.4.2
и
estimatedSize = (int) pow ((double) (dims[0] * dims[1] * dims[2]), .75); // 5.0.4
estimatedSize = static_cast<int>(
pow(static_cast<double>(dims[0]*dims[1]*dims[2]),0.75)); // 5.4.2
Опять же, они исправляют кое-что при преобразовании, но это выглядит нормально.
Можно также посмотреть vtkImageThreshold
]слишком. Разница между r1,50 и r1,52 .
lowerThreshold = (IT) inData->GetScalarTypeMin(); // 5.0.4
lowerThreshold = static_cast<IT>(inData->GetScalarTypeMin()); // 5.4.2
Есть еще много других, но все они кастинговые.
Это становится более интересным с vtkTIFFReader
. Разница между 1,51 и 1,63 . Как вы можете видеть по разнице номеров ревизий, в этом классе произошли некоторые изменения по сравнению с другими. Вот комментарии при проверке:
По количеству изменений, внесенных в vtkTIFFReader, я могу предположить, что разница в поведении исходит именно оттуда. Например, он мог начать распознавать ваш Tiff как другой формат и изменил внутренние значения пикселей. Попробуйте распечатать значения пикселей и посмотрите, есть ли разница. Если значения пикселей изменились, maxthres = 81
может быть слишком большим.