Show More
@@ -0,0 +1,5 b'' | |||
|
1 | ||
|
2 | - IPython now looks for config files in ``{sys.prefix}/etc/ipython`` | |
|
3 | for environment-specific configuration. | |
|
4 | - Startup files can be found in ``/etc/ipython/startup`` or ``{sys.prefix}/etc/ipython/startup`` | |
|
5 | in addition to the profile directory, for system-wide or env-specific startup files. |
@@ -44,6 +44,14 b' else:' | |||
|
44 | 44 | "/etc/ipython", |
|
45 | 45 | ] |
|
46 | 46 | |
|
47 | ||
|
48 | ENV_CONFIG_DIRS = [] | |
|
49 | _env_config_dir = os.path.join(sys.prefix, 'etc', 'ipython') | |
|
50 | if _env_config_dir not in SYSTEM_CONFIG_DIRS: | |
|
51 | # only add ENV_CONFIG if sys.prefix is not already included | |
|
52 | ENV_CONFIG_DIRS.append(_env_config_dir) | |
|
53 | ||
|
54 | ||
|
47 | 55 | _envvar = os.environ.get('IPYTHON_SUPPRESS_CONFIG_ERRORS') |
|
48 | 56 | if _envvar in {None, ''}: |
|
49 | 57 | IPYTHON_SUPPRESS_CONFIG_ERRORS = None |
@@ -403,6 +411,7 b' class BaseIPythonApplication(Application):' | |||
|
403 | 411 | |
|
404 | 412 | def init_config_files(self): |
|
405 | 413 | """[optionally] copy default config files into profile dir.""" |
|
414 | self.config_file_paths.extend(ENV_CONFIG_DIRS) | |
|
406 | 415 | self.config_file_paths.extend(SYSTEM_CONFIG_DIRS) |
|
407 | 416 | # copy config files |
|
408 | 417 | path = self.builtin_profile_dir |
@@ -11,12 +11,14 b' from __future__ import absolute_import' | |||
|
11 | 11 | from __future__ import print_function |
|
12 | 12 | |
|
13 | 13 | import glob |
|
14 | from itertools import chain | |
|
14 | 15 | import os |
|
15 | 16 | import sys |
|
16 | 17 | |
|
17 | 18 | from traitlets.config.application import boolean_flag |
|
18 | 19 | from traitlets.config.configurable import Configurable |
|
19 | 20 | from traitlets.config.loader import Config |
|
21 | from IPython.core.application import SYSTEM_CONFIG_DIRS, ENV_CONFIG_DIRS | |
|
20 | 22 | from IPython.core import pylabtools |
|
21 | 23 | from IPython.utils import py3compat |
|
22 | 24 | from IPython.utils.contexts import preserve_keys |
@@ -331,7 +333,9 b' class InteractiveShellApp(Configurable):' | |||
|
331 | 333 | |
|
332 | 334 | def _run_startup_files(self): |
|
333 | 335 | """Run files from profile startup directory""" |
|
334 | startup_dir = self.profile_dir.startup_dir | |
|
336 | startup_dirs = [self.profile_dir.startup_dir] + [ | |
|
337 | os.path.join(p, 'startup') for p in chain(ENV_CONFIG_DIRS, SYSTEM_CONFIG_DIRS) | |
|
338 | ] | |
|
335 | 339 | startup_files = [] |
|
336 | 340 | |
|
337 | 341 | if self.exec_PYTHONSTARTUP and os.environ.get('PYTHONSTARTUP', False) and \ |
@@ -343,9 +347,9 b' class InteractiveShellApp(Configurable):' | |||
|
343 | 347 | except: |
|
344 | 348 | self.log.warning("Unknown error in handling PYTHONSTARTUP file %s:", python_startup) |
|
345 | 349 | self.shell.showtraceback() |
|
346 | ||
|
347 | startup_files += glob.glob(os.path.join(startup_dir, '*.py')) | |
|
348 | startup_files += glob.glob(os.path.join(startup_dir, '*.ipy')) | |
|
350 | for startup_dir in startup_dirs[::-1]: | |
|
351 | startup_files += glob.glob(os.path.join(startup_dir, '*.py')) | |
|
352 | startup_files += glob.glob(os.path.join(startup_dir, '*.ipy')) | |
|
349 | 353 | if not startup_files: |
|
350 | 354 | return |
|
351 | 355 |
General Comments 0
You need to be logged in to leave comments.
Login now