我们从Python开源项目中,提取了以下14个代码示例,用于说明如何使用compileall.compile_file()。
def test_compile_files(self): # Test compiling a single file, and complete directory for fn in (self.bc_path, self.bc_path2): try: os.unlink(fn) except: pass compileall.compile_file(self.source_path, force=False, quiet=True) self.assertTrue(os.path.isfile(self.bc_path) and not os.path.isfile(self.bc_path2)) os.unlink(self.bc_path) compileall.compile_dir(self.directory, force=False, quiet=True) self.assertTrue(os.path.isfile(self.bc_path) and os.path.isfile(self.bc_path2)) os.unlink(self.bc_path) os.unlink(self.bc_path2)
def test_compile_files(self): # Test compiling a single file, and complete directory for fn in (self.bc_path, self.bc_path2): try: os.unlink(fn) except: pass compileall.compile_file(self.source_path, force=False, quiet=True) self.assertTrue(os.path.isfile(self.bc_path) \ and not os.path.isfile(self.bc_path2)) os.unlink(self.bc_path) compileall.compile_dir(self.directory, force=False, quiet=True) self.assertTrue(os.path.isfile(self.bc_path) \ and os.path.isfile(self.bc_path2)) os.unlink(self.bc_path) os.unlink(self.bc_path2)
def generate_pyc(): os.mkdir("dummy_package") with open("dummy_package/__init__.py", 'w'): pass with open("dummy_package/dummy.py", 'w') as f: f.write(SRC) import compileall compileall.compile_file("dummy_package/dummy.py") os.remove("dummy_package/dummy.py") if sys.version_info[0] == 3: # Python3 specific: # To import pyc modules, we must move them out of the __pycache__ # directory and rename them to remove ".cpython-%s%d" # see: http://stackoverflow.com/questions/11648440/python-does-not-detect-pyc-files for f in os.listdir("dummy_package/__pycache__"): dst = f.replace('.cpython-%s%s' % sys.version_info[:2], "") dst = os.path.join("dummy_package", dst) shutil.copy(os.path.join("dummy_package/__pycache__", f), dst) # Python 2.6 does not necessarily come with `compileall.compile_file`.
def test_no_pycache_in_non_package(self): # Bug 8563 reported that __pycache__ directories got created by # compile_file() for non-.py files. data_dir = os.path.join(self.directory, 'data') data_file = os.path.join(data_dir, 'file') os.mkdir(data_dir) # touch data/file with open(data_file, 'w'): pass compileall.compile_file(data_file) self.assertFalse(os.path.exists(os.path.join(data_dir, '__pycache__')))
def archive_bundles(product_name, version, bundle_paths): file_paths = git('ls-files', '-z', *bundle_paths).rstrip('\0').split('\0') git('commit', '-am', version) temp_dir_path = tempfile.mkdtemp(prefix='upload_' + product_name) archive_dir_path = os.path.join(temp_dir_path, '%s %s' % (product_name, version), '') git('checkout-index', '--prefix=' + archive_dir_path, *file_paths) git('reset', 'HEAD~') for py_path in (f for f in file_paths if f.endswith('.py')): py_path = os.path.join(archive_dir_path, py_path) compileall.compile_file(py_path) # can't delete default.py because LaunchBar won't let me point at a .pyc if os.path.split(py_path)[1] != 'default.py': os.unlink(py_path) for bundle_path in bundle_paths: sign_bundle(os.path.join(archive_dir_path, bundle_path)) # note: a single action can be zipped into a .lbaction file instead archive_path = os.path.join(project_path(), '%s-%s.zip' % (product_name, version)) subprocess.check_call(['/usr/bin/ditto', '-ck', temp_dir_path, archive_path]) shutil.rmtree(temp_dir_path) return archive_path