mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 20:51:26 +00:00 
			
		
		
		
	M PyShell.py
M idle M idle.py M idle.pyw M setup.py Switch back to installing IDLE as a package. The IDLE GUI and the subprocess will both attempt to start up via the package mechanism, but if IDLE is not yet installed it is possible to run by calling python idle.py in the IDLE source directory, or to add the source directory to sys.path. One advantage of doing it this way is IDLE stays off sys.path. Developed in collaboration with Tony Lownds.
This commit is contained in:
		
							parent
							
								
									12bf339aea
								
							
						
					
					
						commit
						f4f4276815
					
				
					 5 changed files with 35 additions and 15 deletions
				
			
		|  | @ -320,8 +320,14 @@ def build_subprocess_arglist(self): | |||
|             return [sys.executable, '-p', str(self.port)] | ||||
|         else: | ||||
|             w = ['-W' + s for s in sys.warnoptions] | ||||
|             return [sys.executable] + w \ | ||||
|                  + ["-c", "__import__('run').main()", str(self.port)] | ||||
|             # Maybe IDLE is installed and is being accessed via sys.path, | ||||
|             # or maybe it's not installed and the idle.py script is being | ||||
|             # run from the IDLE source directory. | ||||
|             if __name__ == 'idlelib.PyShell': | ||||
|                 command = "__import__('idlelib.run').run.main()" | ||||
|             else: | ||||
|                 command = "__import__('run').main()" | ||||
|             return [sys.executable] + w + ["-c", command, str(self.port)] | ||||
| 
 | ||||
|     def start_subprocess(self): | ||||
|         addr = ("localhost", self.port) | ||||
|  |  | |||
|  | @ -1,4 +1,9 @@ | |||
| #! /usr/bin/env python | ||||
| 
 | ||||
| try: | ||||
|     import idlelib.PyShell | ||||
|     idlelib.PyShell.main() | ||||
| except: | ||||
|     # IDLE is not installed, but maybe PyShell is on sys.path: | ||||
|     import PyShell | ||||
|     PyShell.main() | ||||
|  |  | |||
|  | @ -1,4 +1,9 @@ | |||
| #! /usr/bin/env python | ||||
| 
 | ||||
| try: | ||||
|     import idlelib.PyShell | ||||
|     idlelib.PyShell.main() | ||||
| except: | ||||
|     # IDLE is not installed, but maybe PyShell is on sys.path: | ||||
|     import PyShell | ||||
|     PyShell.main() | ||||
|  |  | |||
|  | @ -1,4 +1,9 @@ | |||
| #! /usr/bin/env python | ||||
| 
 | ||||
| try: | ||||
|     import idlelib.PyShell | ||||
|     idlelib.PyShell.main() | ||||
| except: | ||||
|     # IDLE is not installed, but maybe PyShell is on sys.path: | ||||
|     import PyShell | ||||
|     PyShell.main() | ||||
|  |  | |||
|  | @ -46,14 +46,14 @@ def run(self): | |||
|         # Copies all .py files, then also copies the txt and gif files | ||||
|         build_py.run(self) | ||||
|         for name in txt_files: | ||||
|             outfile = self.get_plain_outfile(self.build_lib, [], name) | ||||
|             outfile = self.get_plain_outfile(self.build_lib, [pkgname], name) | ||||
|             dir = os.path.dirname(outfile) | ||||
|             self.mkpath(dir) | ||||
|             self.copy_file(os.path.join(pkg_dir, name), outfile, | ||||
|                            preserve_mode = 0) | ||||
|         for name in Icons: | ||||
|             outfile = self.get_plain_outfile(self.build_lib, | ||||
|                                              ["Icons"], name) | ||||
|                                              [pkgname, "Icons"], name) | ||||
|             dir = os.path.dirname(outfile) | ||||
|             self.mkpath(dir) | ||||
|             self.copy_file(os.path.join("Icons", name), | ||||
|  | @ -71,11 +71,11 @@ def get_outputs(self, include_bytecode=1): | |||
|         if not include_bytecode: | ||||
|             return outputs | ||||
|         for name in txt_files: | ||||
|             filename = self.get_plain_outfile(self.build_lib, [], name) | ||||
|             filename = self.get_plain_outfile(self.build_lib, [pkgname], name) | ||||
|             outputs.append(filename) | ||||
|         for name in Icons: | ||||
|             filename = self.get_plain_outfile(self.build_lib, | ||||
|                                               ["Icons"], name) | ||||
|                                               [pkgname, "Icons"], name) | ||||
|             outputs.append(filename) | ||||
|         return outputs | ||||
| 
 | ||||
|  | @ -111,7 +111,6 @@ def _bytecode_filenames(self, files): | |||
|       cmdclass = {'build_py':IDLE_Builder, | ||||
|                   'install_lib':IDLE_Installer}, | ||||
|       package_dir = {pkgname: pkg_dir}, | ||||
|       extra_path = pkgname, | ||||
|       py_modules = [f.split('.')[0] for f in glob.glob("*.py")], | ||||
|       packages = [pkgname], | ||||
|       scripts = [os.path.join(pkg_dir, idle_name)] | ||||
|       ) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Kurt B. Kaiser
						Kurt B. Kaiser