This commit is contained in:
blueloveTH 2023-05-23 22:20:19 +08:00
parent 73fbb98712
commit 0befc0139f
3 changed files with 24 additions and 4 deletions

View File

@ -490,7 +490,18 @@ __NEXT_STEP:;
auto it = _lazy_modules.find(name);
if(it == _lazy_modules.end()){
Bytes b = _read_file_cwd(fmt(name, ".py"));
if(!b) _error("ImportError", fmt("module ", name.escape(), " not found"));
if(!b) {
for(Str path: _path){
#ifdef _WIN32
const char* sep = "\\";
#else
const char* sep = "/";
#endif
b = _read_file_cwd(fmt(path, sep, name, ".py"));
if(b) break;
}
if(!b) _error("ImportError", fmt("module ", name.escape(), " not found"));
}
source = Str(b.str());
}else{
source = it->second;

View File

@ -42,6 +42,7 @@
#define DEBUG_NO_AUTO_GC 0
#define DEBUG_GC_STATS 0
// config macros
#ifndef PK_ENABLE_OS
#ifdef __ANDROID__
@ -59,6 +60,14 @@
#endif
#if PK_ENABLE_THREAD
#define THREAD_LOCAL thread_local
#else
#define THREAD_LOCAL
#endif
/*******************************************************************************/
// This is the maximum number of arguments in a function declaration
// including positional arguments, keyword-only arguments, and varargs
#define PK_MAX_CO_VARNAMES 255
@ -128,7 +137,6 @@ struct Type {
operator int() const noexcept { return this->index; }
};
#define THREAD_LOCAL // thread_local
#define CPP_LAMBDA(x) ([](VM* vm, ArgsView args) { return x; })
#ifdef POCKETPY_H

View File

@ -113,8 +113,9 @@ public:
std::vector<PyTypeInfo> _all_types;
void (*_gc_marker_ex)(VM*) = nullptr;
NameDict _modules; // loaded modules
std::map<StrName, Str> _lazy_modules; // lazy loaded modules
NameDict _modules; // loaded modules
std::map<StrName, Str> _lazy_modules; // lazy loaded modules
std::vector<Str> _path; // search path
PyObject* None;
PyObject* True;