On Monday, November 13, 2017 at 10:41:30 PM UTC-8, torgeriedel wrote:
Am 13.11.2017 um 14:09 schrieb Jun Omae:
> On Sun, Nov 12, 2017 at 11:41 PM, Torge Riedel <torgerie...@gmx.de
<mailto:torgerie...@gmx.de>> wrote:
>> Ok, this switched to a general issue. I followed documentation on
>> https://trac.edgewall.org/wiki/TracInstall
<https://trac.edgewall.org/wiki/TracInstall> and then the following call to
>> initialize a new environment:
>>
>> trac-admin /var/www/trac/env2 initenv
>>
>> Creating a new Trac environment at /var/www/trac/env2
>>
>> Trac will first ask a few questions about your environment
>> in order to initialize and prepare the project database.
>>
>> Please enter the name of your project.
>> This name will be used in page titles and descriptions.
>>
>> Project Name [My Project]> Test
>>
>> Please specify the connection string for the database to use.
>> By default, a local SQLite database is created in the environment
>> directory. It is also possible to use an existing MySQL or
>> PostgreSQL database (check the Trac documentation for the exact
>> connection string syntax).
>>
>> Database connection string [sqlite:db/trac.db]>
>> mysql://tracuser:MyPwd@localhost:3306/trac
>>
>> Creating and Initializing Project
>> Initenv for '/var/www/trac/env2' failed.
>> Failed to create environment.
>> Unsupported database type "mysql"
>> Traceback (most recent call last):
>> File "build/bdist.linux-x86_64/egg/trac/admin/console.py", line 500,
in
>> do_initenv
>> options=options)
>> File "build/bdist.linux-x86_64/egg/trac/core.py", line 136, in
__call__
>> self.__init__(*args, **kwargs)
>> File "build/bdist.linux-x86_64/egg/trac/env.py", line 300, in __init__
>> self.create(options)
>> File "build/bdist.linux-x86_64/egg/trac/env.py", line 592, in create
>> DatabaseManager(self).init_db()
>> File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 337, in
init_db
>> connector, args = self.get_connector()
>> File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 615, in
>> get_connector
>> scheme=scheme))
>> TracError: Unsupported database type "mysql"
> Could you please try initenv with logging using --inherit option?
>
> $ cat /path/to/inherit.ini
> [logging]
> log_type = stderr
> log_level = DEBUG
> $ trac-admin /path/to/env initenv --inherit=/path/to/inherit.ini
> my-project 'mysql://u:p@localhost/t'
>
>
> In Ubuntu 16.04 on docker, I get the following 2 errors:
>
> Error 1
> =======
> 12:55:21 Trac[loader] DEBUG: Loading plugin "trac.db.mysql" from
> "/tmp/venv/lib/python2.7/site-packages"
> 12:55:21 Trac[loader] ERROR: Skipping "trac.db.mysql =
> trac.db.mysql_backend [mysql]":
> Traceback (most recent call last):
> File "/tmp/venv/local/lib/python2.7/site-packages/trac/loader.py",
> line 68, in _load_eggs
> entry.load(require=True)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 2228, in load
> self.require(*args, **kwargs)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 2245, in require
> items = working_set.resolve(reqs, env, installer)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 808, in resolve
> if not req_extras.markers_pass(req):
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 993, in markers_pass
> return not req.marker or any(extra_evals) or req.marker.evaluate()
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 278, in evaluate
> return _evaluate_markers(self._markers, current_environment)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 203, in _evaluate_markers
> lhs_value = _get_env(environment, lhs.value)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 185, in _get_env
> "{0!r} does not exist in evaluation environment.".format(name)
> UndefinedEnvironmentName: 'extra' does not exist in evaluation
environment.
> 12:55:21 Trac[loader] DEBUG: Loading plugin "trac.db.postgres" from
> "/tmp/venv/lib/python2.7/site-packages"
> 12:55:21 Trac[loader] ERROR: Skipping "trac.db.postgres =
> trac.db.postgres_backend [postgresql]":
> Traceback (most recent call last):
> File "/tmp/venv/local/lib/python2.7/site-packages/trac/loader.py",
> line 68, in _load_eggs
> entry.load(require=True)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 2228, in load
> self.require(*args, **kwargs)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 2245, in require
> items = working_set.resolve(reqs, env, installer)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 808, in resolve
> if not req_extras.markers_pass(req):
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
> line 993, in markers_pass
> return not req.marker or any(extra_evals) or req.marker.evaluate()
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 278, in evaluate
> return _evaluate_markers(self._markers, current_environment)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 203, in _evaluate_markers
> lhs_value = _get_env(environment, lhs.value)
> File
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
> line 185, in _get_env
> "{0!r} does not exist in evaluation environment.".format(name)
> UndefinedEnvironmentName: 'extra' does not exist in evaluation
environment.
>
>
> Error 2 after setuptools is reinstalled
> =======
> 12:57:49 Trac[loader] DEBUG: Loading plugin "trac.db.mysql" from
> "/tmp/venv/lib/python2.7/site-packages"
> 12:57:49 Trac[loader] DEBUG: Skipping "trac.db.mysql =
> trac.db.mysql_backend [mysql]": DistributionNotFound: The
> 'MySQL-python>=1.2.2; extra == "mysql"' distribution was not found and
> is required by the application
> 12:57:49 Trac[loader] DEBUG: Loading plugin "trac.db.postgres" from
> "/tmp/venv/lib/python2.7/site-packages"
> 12:57:49 Trac[loader] DEBUG: Skipping "trac.db.postgres =
> trac.db.postgres_backend [postgresql]": DistributionNotFound: The
> 'psycopg2>=2.0; extra == "postgresql"' distribution was not found and
> is required by the application
>
>
Hi Jun,
I did the test Ryan suggest:
# python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from trac.db.mysql_backend import has_mysqldb
>>> has_mysqldb
True
>>> from trac.db.mysql_backend import mysqldb_version
>>> mysqldb_version
'1.3.7'
>>> quit()
So, to me it looks like trac can detect the MySQLdb package in this newer
version. Running your test with debug output it prints like on your d-container:
07:36:16 Trac[loader] DEBUG: Skipping "trac.db.mysql = trac.db.mysql_backend
[mysql]": DistributionNotFound: The 'MySQL-python>=1.2.2' distribution was not found
and is required by the application
So somewhere in trac there is an additional check? I will look in the code
(although I am not a python dev) and try to find the cause of this failing
check. If you have any hints, it will be very helpful.
Thanks
Torge
Please try the following patch:
diff --git a/setup.py b/setup.py
index 5f6f2d7b1..1c93d9e41 100755
--- a/setup.py
+++ b/setup.py
@@ -97,7 +97,7 @@ setup(
],
extras_require = {
'babel': ['Babel>=0.9.5'],
- 'mysql': ['MySQL-python >= 1.2.2'],
+ 'mysql': ['mysqlclient'],
'postgresql': ['psycopg2 >= 2.0'],
'pygments': ['Pygments>=0.6'],
'rest': ['docutils>=0.3.9'],
All tests are passing for me. We might be able to add mysqlclient as a
supported database backend in Trac 1.2.3.
- Ryan
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
trac-users+unsubscr...@googlegroups.com
<mailto:trac-users+unsubscr...@googlegroups.com>.
To post to this group, send email to trac-users@googlegroups.com
<mailto:trac-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.