mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Fix problem with python and change of PATH
- waits that lyxrc has been read before finding python - when the PATH changes, resets the value
This commit is contained in:
parent
e72b3f8e3e
commit
0fc6cfcdcb
@ -2987,6 +2987,8 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
|
||||
case LyXRC::RC_PATH_PREFIX:
|
||||
if (lyxrc_orig.path_prefix != lyxrc_new.path_prefix) {
|
||||
prependEnvPath("PATH", lyxrc_new.path_prefix);
|
||||
// Resets python path
|
||||
support::os::python(true);
|
||||
}
|
||||
case LyXRC::RC_PREVIEW:
|
||||
case LyXRC::RC_PREVIEW_HASHED_LABELS:
|
||||
|
@ -159,11 +159,6 @@ Package::Package(string const & command_line_arg0,
|
||||
explicit_user_support_dir_ = userSupportDir(default_user_support_dir,
|
||||
command_line_user_support_dir, user_support_dir_);
|
||||
|
||||
FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
|
||||
configure_command_ = os::python() + ' ' +
|
||||
quoteName(configure_script.toFilesystemEncoding(), quote_python) +
|
||||
with_version_suffix();
|
||||
|
||||
LYXERR(Debug::INIT, "<package>\n"
|
||||
<< "\tbinary_dir " << binary_dir().absFileName() << '\n'
|
||||
<< "\tsystem_support " << system_support().absFileName() << '\n'
|
||||
@ -176,6 +171,19 @@ Package::Package(string const & command_line_arg0,
|
||||
<< "</package>\n");
|
||||
}
|
||||
|
||||
std::string const & Package::configure_command() const
|
||||
{
|
||||
if (configure_command_.empty()) {
|
||||
std::string &command = const_cast<std::string&>(configure_command_);
|
||||
FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
|
||||
command = os::python() + ' ' +
|
||||
quoteName(configure_script.toFilesystemEncoding()) +
|
||||
with_version_suffix() + " --binary-dir=" +
|
||||
quoteName(FileName(binary_dir().absFileName()).toFilesystemEncoding());
|
||||
}
|
||||
return configure_command_;
|
||||
}
|
||||
|
||||
|
||||
void Package::set_temp_dir(FileName const & temp_dir) const
|
||||
{
|
||||
|
@ -144,7 +144,7 @@ public:
|
||||
* Caution: This is "ready-to-run", i.e. in the locale encoding, not
|
||||
* utf8.
|
||||
*/
|
||||
std::string const & configure_command() const { return configure_command_; }
|
||||
std::string const & configure_command() const;
|
||||
|
||||
private:
|
||||
FileName binary_dir_;
|
||||
|
@ -60,10 +60,13 @@ int timeout_min()
|
||||
}
|
||||
|
||||
|
||||
string const python()
|
||||
string const python(bool reset)
|
||||
{
|
||||
// Check whether the first python in PATH is the right one.
|
||||
static string command = python2("python -tt");
|
||||
if (reset) {
|
||||
command = python2("python -tt");
|
||||
}
|
||||
|
||||
if (command.empty()) {
|
||||
// It was not, so check whether we can find it elsewhere in
|
||||
|
@ -59,7 +59,8 @@ shell_type shell();
|
||||
int timeout_min();
|
||||
|
||||
/// Name of the python interpreter
|
||||
std::string const python();
|
||||
/// @param reset True if the python path should be recomputed
|
||||
std::string const python(bool reset = false);
|
||||
|
||||
///
|
||||
bool isFilesystemCaseSensitive();
|
||||
|
Loading…
Reference in New Issue
Block a user