Hi, I have a trouble around __import__(). The following sample code works well on Python <= 3.3, but it raises ImportError on Python >= 3.4.
## importtest.py import sys, os, shutil def test(name): try: ## create 'foo/__init__.py' file os.mkdir(name) with open(name + "/__init__.py", 'w') as f: f.write("X=1") f.flush() ## ipmort 'foo' module mod = __import__(name) finally: if os.path.isdir(name): shutil.rmtree(name) test("foo") # no errors test("bar") # may raise error on Python >= 3.4. Why? Output Example: ### No errors (Python <= 3.3) ubuntu$ export PYTHONPATH=. ubuntu$ for x in 1 2 3 ; do /usr/bin/python3.3 importtest.py; done ### ImportError (Python >= 3.4) ubuntu$ export PYTHONPATH=. ubuntu$ for x in 1 2 3 ; do /usr/bin/python3.4 importtest.py; done Traceback (most recent call last): File "tmp/importtest.py", line 19, in <module> test("bar") # may raise error on Python >= 3.4. Why? File "tmp/importtest.py", line 13, in test mod = __import__(name) ImportError: No module named 'bar' Please give me any advices or hints. Thanks. -- regards, makoto -- https://mail.python.org/mailman/listinfo/python-list