Skip to content

Flotiarenor/Python-3.10.13

Repository files navigation

This is Python version 3.10.13

CPython build status on Travis CI CPython build status on GitHub Actions CPython build status on Azure DevOps Python Discourse chat

Copyright © 2001-2023 Python Software Foundation. All rights reserved.

See the end of this file for further copyright and license information.

Python的某个二次元解释器报错版 这是一个修改版的CPython,它的错误消息输出带有二次元口气。例如,当你试图除以零时,它会返回:

>>> 1/0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: 笨蛋才会把0放到除数吧!

修改了_PyErr_PrintEx函数用于替换 在unicodeobject.c增加了这几个函数

PyAPI_FUNC(PyObject*) PyUnicode_Load_Replace(PyObject* pyunic);//替换的主要函数

PyAPI_FUNC(const char*) get_original_str(PyObject* pyunic, int* flag);//元组和字符判断

PyAPI_FUNC(PyObject*) process_data(PyObject* replaced_data, int flag, PyObject* pyunic);//元组和字符数据处理

typedef struct { char* key; char* value; } KeyValuePair_Err;//查找表的结构

PyAPI_FUNC(PyObject*) PyUnicode_FromHex(const char* hex);//一个16进制转pyunicode的函数

static int check_string(const char* str)//一个筛选用的旧函数,大概率用处不大了

使用方法按正常python进行直接构建就行,后面修改完成会增加直接安装的版本 文本文档放在"C:\Program Files\Python\LookupTable.txt",后面可能会考虑修改位置

文本文档的格式是形如:

division by zero,e7aca8e89b8be6898de4bc9ae68a8a30e694bee588b0e999a4e695b0e590a721
expected ':',e4b88de58aa0e58692e58fb7e79a84e5a4a7e7aca8e89b8be5b0b1e698afe4bda0e590a721
list index out of range,6c697374e5908ee99da2e79a84e59cb0e696b92ce4b88d2e2e2ee4b88de58fafe4bba5e5868de79c8be4ba862ce4bc9ae59d8fe68e89e79a842ce5919c

生成这段16进制编码的方式可以简单的通过一串python代码实现

print(input().encode('utf-8').hex())
  • 首先是实现一个简单的正则表达式用于查找和替换
  • 文本文件只是一个粗略的做法,可能以后会使用二进制文件,专门写一个python程序用来编辑
  • 只匆匆忙忙做了一段时间,可能会出现各种bug,以及这个表其实有点相当小了得想办法增加更多的报错项目

非常好程序,使我报错不再痛苦

For more complete instructions on contributing to CPython development, see the Developer Guide.

Installable Python kits, and information about using Python, are available at python.org.

On Unix, Linux, BSD, macOS, and Cygwin:

./configure
make
make test
sudo make install

This will install Python as python3.

You can pass many options to the configure script; run ./configure --help to find out more. On macOS case-insensitive file systems and on Cygwin, the executable is called python.exe; elsewhere it's just python.

Building a complete Python installation requires the use of various additional third-party libraries, depending on your build platform and configure options. Not all standard library modules are buildable or useable on all platforms. Refer to the Install dependencies section of the Developer Guide for current detailed information on dependencies for various Linux distributions and macOS.

On macOS, there are additional configure and build options related to macOS framework and universal builds. Refer to Mac/README.rst.

On Windows, see PCbuild/readme.txt.

If you wish, you can create a subdirectory and invoke configure from there. For example:

mkdir debug
cd debug
../configure --with-pydebug
make
make test

(This will fail if you also built at the top-level directory. You should do a make clean at the top-level first.)

To get an optimized build of Python, configure --enable-optimizations before you run make. This sets the default make targets up to enable Profile Guided Optimization (PGO) and may be used to auto-enable Link Time Optimization (LTO) on some platforms. For more details, see the sections below.

PGO takes advantage of recent versions of the GCC or Clang compilers. If used, either via configure --enable-optimizations or by manually running make profile-opt regardless of configure flags, the optimized build process will perform the following steps:

The entire Python directory is cleaned of temporary files that may have resulted from a previous compilation.

An instrumented version of the interpreter is built, using suitable compiler flags for each flavor. Note that this is just an intermediary step. The binary resulting from this step is not good for real-life workloads as it has profiling instructions embedded inside.

After the instrumented interpreter is built, the Makefile will run a training workload. This is necessary in order to profile the interpreter's execution. Note also that any output, both stdout and stderr, that may appear at this step is suppressed.

The final step is to build the actual interpreter, using the information collected from the instrumented one. The end result will be a Python binary that is optimized; suitable for distribution or production installation.

Enabled via configure's --with-lto flag. LTO takes advantage of the ability of recent compiler toolchains to optimize across the otherwise arbitrary .o file boundary when building final executables or shared libraries for additional performance gains.

We have a comprehensive overview of the changes in the What's New in Python 3.10 document. For a more detailed change log, read Misc/NEWS, but a full accounting of changes can only be gleaned from the commit history.

If you want to install multiple versions of Python, see the section below entitled "Installing multiple versions".

Documentation for Python 3.10 is online, updated daily.

It can also be downloaded in many formats for faster access. The documentation is downloadable in HTML, PDF, and reStructuredText formats; the latter version is primarily for documentation authors, translators, and people with special formatting requirements.

For information about building Python's documentation, refer to Doc/README.rst.

Significant backward incompatible changes were made for the release of Python 3.0, which may cause programs written for Python 2 to fail when run with Python 3. For more information about porting your code from Python 2 to Python 3, see the Porting HOWTO.

To test the interpreter, type make test in the top-level directory. The test set produces some output. You can generally ignore the messages about skipped tests due to optional features which can't be imported. If a message is printed about a failed test or a traceback or core dump is produced, something is wrong.

By default, tests are prevented from overusing resources like disk space and memory. To enable these tests, run make testall.

If any tests fail, you can re-run the failing test(s) in verbose mode. For example, if test_os and test_gdb failed, you can run:

make test TESTOPTS="-v test_os test_gdb"

If the failure persists and appears to be a problem with Python rather than your environment, you can file a bug report and include relevant output from that command to show the issue.

See Running & Writing Tests for more on running tests.

On Unix and Mac systems if you intend to install multiple versions of Python using the same installation prefix (--prefix argument to the configure script) you must take care that your primary python executable is not overwritten by the installation of a different version. All files and directories installed using make altinstall contain the major and minor version and can thus live side-by-side. make install also creates ${prefix}/bin/python3 which refers to ${prefix}/bin/python3.X. If you intend to install multiple versions using the same prefix you must decide which version (if any) is your "primary" version. Install that version using make install. Install all other versions using make altinstall.

For example, if you want to install Python 2.7, 3.6, and 3.10 with 3.10 being the primary version, you would execute make install in your 3.10 build directory and make altinstall in the others.

Bug reports are welcome! You can use the issue tracker to report bugs, and/or submit pull requests on GitHub.

You can also follow development discussion on the python-dev mailing list.

If you have a proposal to change Python, you may want to send an email to the comp.lang.python or python-ideas mailing lists for initial feedback. A Python Enhancement Proposal (PEP) may be submitted if your idea gains ground. All current PEPs, as well as guidelines for submitting a new PEP, are listed at python.org/dev/peps/.

See PEP 619 for Python 3.10 release details.

Copyright © 2001-2023 Python Software Foundation. All rights reserved.

Copyright © 2000 BeOpen.com. All rights reserved.

Copyright © 1995-2001 Corporation for National Research Initiatives. All rights reserved.

Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.

See the LICENSE for information on the history of this software, terms & conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.

This Python distribution contains no GNU General Public License (GPL) code, so it may be used in proprietary projects. There are interfaces to some GNU code but these are entirely optional.

All trademarks referenced herein are property of their respective holders.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published