Вы можете использовать плагин зависимости, чтобы генерировать все зависимости в отдельном каталоге до фазы пакета, а затем включать это в путь к классам манифеста:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>theMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Альтернативно использовать ${project.build.directory}/classes/lib
как OutputDirectory для интеграции всех jar-файлов в основную банку, но тогда вам нужно будет добавить пользовательский код загрузки классов для загрузки банок.
Вот код, который должен работать как на Python 2.x, так и на 3.x
. Очевидно, вам понадобится модуль six
, но практически невозможно писать модули, работающие в обеих версиях без шесть.
try:
import configparser
except:
from six.moves import configparser
Совместимость Python 2/3 для configparser
может быть решена просто библиотекой six
from six.moves import configparser
Если вы используете CentOS, вам нужно использовать
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
Чтобы увидеть, что /usr/bin/python
указывает на
, если он указывает на python3 or higher
, изменится на python2.7
Это должно решить проблему.
Я получал ошибку установки для всех пакетов python. Решение Abe Karplus & amp; обсуждение дало мне подсказку о том, что может быть проблемой. Затем я вспомнил, что я вручную изменил /usr/bin/python
с python2.7
на /usr/bin/python3.5
, что фактически вызвало проблему. Как только я reverted
тот же. Это было решено.
Я получил еще один ответ Valeres:
pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py Затем попробуйте снова установить MYSQL-python. Это работает для меня
blockquote>Я бы предложил связать файл, а не копировать его. Он сохраняется для обновления. Я связал файл с каталогом
/usr/lib/python3/
.
как насчет проверки версии Python, которую вы используете в первую очередь.
import six
if six.PY2:
import ConfigParser as configparser
else:
import configparser
brew install mysql
pip3 install mysql
все еще дает ошибку «configparser», и я не знаю, почему это еще не исправлено.
Попробуйте это решение, которое отлично сработало для меня.
В основном, это переустановка / обновление до последней версии mysql от варева, а затем установка mysqlclient
или MySQL-Python
из global pip3
вместо virtualenv pip3
.
Затем вы получите доступ к virtualenv
и успешно установите mysqlclient
или MySQL-Python
.
MySQL-python не поддерживается на python3 вместо этого вы можете использовать mysqlclient
Если вы на fedora/centos/Red Hat
установите следующий пакет
yum install python3-devel
pip install mysqlclient
Вместо этого вы можете использовать пакет mysqlclient
как замену для MySQL-python. Это вилка MySQL-python
с добавленной поддержкой Python 3.
Мне повезло с просто
pip install mysqlclient
в моем python3.4 virtualenv после
sudo apt-get install python3-dev libmysqlclient-dev
, который явно специфичен для ubuntu / debian, но я просто хотел поделиться своим успехом:)
Я запускаю kali linux-Rolling, и я столкнулся с этой проблемой, когда попытался запустить cupp.py в терминале, после обновления до python 3.6.0. После некоторых исследований и испытаний я обнаружил, что смена ConfigParser
на configparser
работала для меня, но затем я столкнулся с другой проблемой.
config = configparser.configparser()
AttributeError: module 'configparser' has no attribute 'configparser'
После немного большего исследования я понял, что для python 3 ConfigParser
изменено на configparser
, но обратите внимание, что у него есть атрибут ConfigParser()
.
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
Затем попробуйте снова установить MYSQL-python. Это работало для меня
Это сработало для меня
cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py