CN114780109A - Python project third-party library dependence automatic analysis and installation method - Google Patents

Python project third-party library dependence automatic analysis and installation method Download PDF

Info

Publication number
CN114780109A
CN114780109A CN202210554316.XA CN202210554316A CN114780109A CN 114780109 A CN114780109 A CN 114780109A CN 202210554316 A CN202210554316 A CN 202210554316A CN 114780109 A CN114780109 A CN 114780109A
Authority
CN
China
Prior art keywords
version
library
project
dependency
python
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210554316.XA
Other languages
Chinese (zh)
Other versions
CN114780109B (en
Inventor
吴荣鑫
王超
林立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen University
Original Assignee
Xiamen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen University filed Critical Xiamen University
Priority to CN202210554316.XA priority Critical patent/CN114780109B/en
Publication of CN114780109A publication Critical patent/CN114780109A/en
Application granted granted Critical
Publication of CN114780109B publication Critical patent/CN114780109B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

A Python project third-party library dependency automatic analysis and installation method relates to the technical field of software reliability detection. Firstly, collecting data of all third libraries on a Python package management warehouse PyPI to form a local knowledge base; inputting a Python project, analyzing a configuration file of the Python project, and acquiring all direct dependencies of the project; constructing a complete dependency tree of the project including direct dependency and indirect dependency and all versions conforming to the constraint range according to a local knowledge base, and solving all versions meeting the constraint range; and outputting the final installation script according to the installed third-party library in the local environment. The method analyzes the recommended library, and can reuse the locally installed third-party library as much as possible while meeting the project constraint. And automatic analysis, installation and multiplexing of a Python project third-party library are realized. Saving download time and installation time required for a user to install a project and reducing hard disk space usage.

Description

Python project third-party library dependence automatic analysis and installation method
Technical Field
The invention relates to the technical field of software reliability detection, in particular to a Python project third-party library dependency automatic analysis and installation method.
Background
In the current software development process, the reuse of the third-party library brings great convenience to developers, so that some software developers are more concentrated on the development of own business functions. PyPI is a successful example of a Python ecosystem, providing a central repository for storing large numbers of Python third party libraries. By 3 months 2022, it has indexed published versions of nearly 300 million libraries, each of which has metadata descriptions (e.g., library names, version information, and dependencies on other libraries). In order to import a library in PyPI, a developer needs to declare version constraints (i.e., constraints that the version of the library must satisfy) to limit whether the imported libraries in the configuration file are compatible. Then, the Python library installer pip will automatically install the imported library and other libraries relied upon by this imported library in a recursive manner, subject to version constraints. pip frees developers from the heavy burden of managing library dependencies. However, due to the complex library dependencies, the automated installation process will be accompanied by the risk of dependency conflict issues. Dependency conflicts may arise if multiple versioning constraints for the same library are present in a project.
The dependency conflict problem in the Python project is mainly divided into two categories, and the first category is the problem of conflict of the project caused by updating of other libraries in the Python ecological community. This is because the installation policy of pip defaults to downloading the latest version within the constraints of installing the third library, but pip does not guarantee that the downloaded third party library is fully compatible. The second is the problem of incompatibility of multiple Python items in the local environment. When a developer installs multiple Python projects, version constraints for the same third-party library may be inconsistent, which leads to the problem of incompatibility of the Python projects with the local environment during installation. Therefore, there is a need for a method to automatically parse all versions of the third library required for Python projects, installing all third party libraries without relying on compatibility issues such as conflicts.
Disclosure of Invention
The invention aims to overcome the defects in the prior art, and provides a Python software project third-party library dependency automatic analysis and installation method. Parsing is based on all available versions of all third libraries of the entire dependency tree of the project, and it is desirable to find the most appropriate version of the third library needed to meet the current project in the shortest amount of time. Firstly, collecting data of all third libraries on a Python package management warehouse PyPI to form a local knowledge base; then inputting a Python project, analyzing the configuration file of the Python project, and acquiring all direct dependencies of the project; then, a complete dependency tree of the project, including direct dependency and indirect dependency and all versions conforming to the constraint range, is constructed according to a local knowledge base, and then all versions meeting the constraint range are solved; and finally, outputting a final installation script according to the installed third-party library in the local environment, so that the library analyzed and recommended by the method can meet the project constraint and reuse the locally installed third-party library as much as possible. The method realizes automatic analysis, installation and multiplexing of the third-party library of the Python project.
The invention comprises the following steps:
step 1: acquiring detailed information of all third-party libraries in a Python ecological community, including library names, versions and all required direct dependencies of the library names and the versions, and constructing a local knowledge base;
and 2, step: acquiring a dependency configuration file (setup. py or reqiurements. txt) of a Python project;
and 3, step 3: constructing a complete dependency tree of the project, generating an SMT expression and solving a constraint range;
and 4, step 4: optimizing the generated SMT expression according to the installed third-party library in the local environment;
and 5: after the optimization operation in the step 4, obtaining a final SMT expression, then solving, obtaining all third party libraries required by the Python project, wherein the versions of the third party libraries are the latest versions meeting the version constraint range, and outputting an installation script;
and 6: and (5) sequentially installing the installation scripts in the step (5), wherein all third parties depend on the local environment where the project is located, and if a reusable third party library exists, the installation scripts are linked to the environment where the project is located in a soft connection mode.
In step 1, the step of constructing the local knowledge base may be:
step 1.1: acquiring all third party libraries of a Python ecological community;
accessing an API provided by PyPI, acquiring the name and version list of each third-party library in the Python ecological community, and then downloading each version to a local environment through a command of 'pip install package _ name-no-deps';
step 1.2: analyzing the dependency information of each library version;
after downloading a third-party library through the command in the step 1.1, analyzing a setup.py file of the third-party library, acquiring the complete name and the version number of the library and the complete name and version number information of all other directly dependent third-party libraries of the library, and respectively storing the 4 types of information into a database table package _ req, wherein 4 columns are respectively package _ name, package _ version, package _ req _ name and package _ req _ version;
step 1.3: renumbering the data to form a local knowledge base;
because the SMT constraint solver only supports the numerical range solver but does not support the version number format (such as 0.0.1), the data items in the database need to be renumbered, each version of each library corresponds to a unique id, and the id numbers are arranged in sequence from small version number to large version number; and finally, forming a local knowledge base file, wherein the storage format is a Json file.
In step 3, the building of the complete dependency tree of the project, and the specific steps of generating the SMT expression and solving the constraint range may be:
step 3.1: analyzing the item direct dependency library;
analyzing the dependency configuration file obtained in the step 2, and after obtaining the configuration file, analyzing a setup.py file by the method in the step 1.2 or directly reading requirements.txt to obtain all the information of the required direct dependency library of the Python project; sequentially analyzing each direct dependency library of the project according to an analysis strategy with a pip default breadth priority to obtain a required version constraint range;
step 3.2: acquiring a satisfiable version list of a direct dependency base from a knowledge base;
after the version constraint ranges of all the direct dependence libraries of the project are obtained in the step 3.1, the version constraint ranges are converted into an id list, and all the versions of the current library, which are obtained in a local knowledge base, are searched and conform to the version constraint ranges;
step 3.3: analyzing each version in the step 3.2, and acquiring information of a sub-dependency library of the version, including names and version constraint ranges;
step 3.4: repeating the step 3.2 to the step 3.3 by using a depth-first traversal algorithm until the construction of the whole complete dependency tree of the Python project is completed, wherein the complete dependency tree comprises all required dependency libraries and all feasible versions of the current project;
step 3.5: generating an SMT expression according to the complete dependency tree in the step 3.4;
and (4) converting each dependency base and the version thereof in the complete dependency tree in the step (3.4) into a corresponding unique id in the local knowledge base, and converting the version constraint range of the base into the range of the id to form an SMT expression. The main reason is that the SMT expression only supports value types for comparison. AND the multiple versions of each library have OR relationship, AND the multiple libraries have AND relationship, AND finally the SMT expression based on the complete dependency tree is formed.
Step 3.6: and solving the SMT expression by using a constraint solving tool Z3 to obtain the range of the constraint of the satisfiable version of each dependency library.
Defining: SMT is an extension of SAT (Boolean expression satisfiability theory) and represents a satisfiability determination problem of a type of formula, where SMT expressions are used to determine whether version constraint ranges of third party libraries in a dependency tree can be satisfied.
In step 4, the generated SMT expression is optimized according to the installed third party library in the local environment, and the specific steps are as follows:
step 4.1: acquiring an installed third-party library list package _ list in a local environment;
and 4.2: for each version of each third party library in the package _ list, sequentially adding the SMT expressions in the step (3) from a high version to a low version, and judging whether the SMT expressions meet the requirements by using a constraint solver;
step 4.3: if so, the current version is proved to accord with the SMT constraint range and can be reused, so that the current version is reserved;
step 4.4: if not, rolling back the state of the SMT expression, and then continuing to add the next version until all the packets appearing in the SMT expression are traversed once, and stopping.
In step 6, the specific steps are as follows:
for each record of the installation script in the step 5, firstly, whether the local warehouse has the version of the library is indexed, if yes, the soft connection is directly established, ln-s is used in Linux, mklink is used in Windows, and finally, all the packages are indexed into the virtual environment where the current project is located. If the version does not exist in the local repository, a specific version of the repository is installed in the local repository using a pip install command pip install-no-deps, and then a soft connection is created into the current virtual environment.
The beneficial effects of the invention mainly comprise two parts:
1. the method can enable a user to automatically analyze all the dependent third-party libraries and versions thereof required by the project when the user installs the Python project. The method can also effectively solve the problem of dependency conflict existing in the project, and solves the problems of installation failure, bandwidth waste and the like caused by too large search space, too long search time and the like when the problem of dependency conflict is solved by the Python default installation tool pip. In the using process, a user does not need to know the specific process of Python dependency analysis and process the problem of potential dependency conflict existing in the project, and can directly use the method.
2. When all the third-party libraries depended on by the Python project are analyzed and installed by using the method, the locally installed third-party library list can be obtained. In the list of the dependency libraries to be installed recommended to developers, the local installed dependency libraries are preferentially selected, so that local data can be reused as much as possible when the project is installed.
Drawings
FIG. 1 is a flow chart of a Python software project third party library dependency automated parsing and installation method in an embodiment of the invention;
FIG. 2 is a flow chart of the construction of a local knowledge base in an embodiment of the present invention;
FIG. 3 is a flowchart of the construction of a complete dependency tree and the parsing of a version range of a project dependency library in an embodiment of the present invention;
fig. 4 is a flowchart of optimizing a multiplexing local library according to an embodiment of the present invention.
Detailed Description
The invention provides a Python software project third party library dependence automatic analysis and installation method, which comprises the steps of detecting a configuration file of a project, automatically analyzing all third party libraries and the most appropriate version range required by the project, automatically solving and providing all third party libraries and versions thereof required by the current project according to the condition of the locally installed third party libraries, automatically installing all versions, simultaneously reusing the locally installed third party libraries as much as possible, and finally saving the download time and the installation time required by a user for installing the project and reducing the use of a hard disk space.
The following detailed description of specific embodiments of the present invention is provided in connection with the accompanying drawings and examples. The following examples are intended to illustrate the invention, but are not intended to limit the scope of the invention.
The implementation flow of the method is shown in figure 1, and the process is as follows:
step 1: the specific content of the local knowledge base construction is shown in fig. 2, and includes:
step 1.1: acquiring all third party libraries of the Python ecological community;
and accessing an API provided by the PyPI, and acquiring the name and version list of each third-party library in the Python ecological community. Then, for each version, it is downloaded into the local environment by the command "pip install package _ name-no-deps".
Step 1.2: analyzing the dependency information of each library version;
after downloading a third-party library through the command in the step 1.1, parsing the setup.py file of the third-party library, and acquiring the complete name and version number of the library and the complete name and version number information of all other directly dependent third-party libraries of the library. And respectively storing the 4 types of information into a database table package _ req, wherein 4 columns respectively represent package _ name, package _ version, package _ req _ name and package _ req _ version.
Step 1.3: renumbering the data to form a local knowledge base;
because the SMT constraint solver only supports the numerical range solver but does not support the version number format (such as 0.0.1), the data items in the database need to be renumbered, each version of each library corresponds to a unique id, and the id numbers are arranged in sequence from small version number to large version number. And finally, forming a local knowledge base file, wherein the storage format is a Json file.
And 2, step: acquiring a configuration file of a Python project, and analyzing the information of a direct dependence library;
there is at least one configuration file per Python project (e.g., setup.
And step 3: constructing a complete dependency tree, generating an SMT expression and solving a constraint range, wherein the specific content is shown in FIG. 3 and comprises the following steps:
step 3.1: resolving items directly from the library: after the configuration file is obtained, the setup.py file is analyzed through the method of the step 1.2 or the requirements.txt are directly read to obtain the information of all direct dependency libraries of the Python project. And sequentially analyzing each direct dependency library of the items according to an analysis strategy with the pip default breadth first, and acquiring a required version constraint range.
Step 3.2: obtaining a list of satisfiable versions of the direct dependency library in the knowledge base: after obtaining the version constraint ranges of all the direct dependency libraries of the project in step 3.1, the versions are converted into id lists to retrieve the corresponding versions in the local knowledge base.
Step 3.3: each version in step 3.2 is parsed and information of its child dependency library is obtained, including names and version constraint ranges.
Step 3.4: the contents of steps 3.2 to 3.3 above are repeated using the depth-first traversal algorithm until a complete dependency tree is built containing all the dependency libraries and all versions thereof required for the current Python entry.
Step 3.5: generating an SMT expression according to the complete dependency tree in step 3.4: and (4) converting each dependency base and the version thereof in the complete dependency tree in the step (3.4) into a corresponding unique id in the local knowledge base, and converting the version constraint range of the base into the range of the id to form an SMT expression. The main reason is that the SMT expression only supports value types for comparison. AND the multiple versions of each library have an OR relationship, the multiple libraries have an AND relationship, AND finally the SMT expression based on the complete dependency tree is formed.
Step 3.6: and solving the SMT expression by using a constraint solving tool Z3 to obtain the range of the constraint of the satisfiable version of each dependency library.
And 4, step 4: optimizing the generated SMT expression according to the installed third party library in the local environment, as shown in fig. 4, includes:
step 4.1: acquiring an installed third-party library list package _ list in a local environment;
by the method, when the Python project is installed for the first time, a local warehouse is created for storing a desired third-party library of the Python project. When the developer installs the project by using the method again, all the third-party library package _ lists installed in the local warehouse at the moment are obtained firstly.
And 4.2: for each version of each third-party library in the package _ list, judging whether the version is met by using a constraint solver;
for each library in the package _ list, if the library is in the SMT expression, acquiring all downloaded versions of the library, traversing each version from a high version number to a low version number in sequence, converting the versions into unique id in a local knowledge base through a conversion function transform, adding the unique id into the SMT expression in the step 3 in the form of package _ name ═ id, and finally judging whether the expression can be satisfied by using a constraint solver.
Step 4.3: if yes, the version of the current library is proved to accord with the SMT constraint range, and can be reused, so that the version is reserved;
and if the SMT expression is added into the packet _ name (id), and the solving result is in an sat state, the result indicates that the SMT expression can be met, the current constraint is reserved, and then the next library is skipped to perform traversal search.
Step 4.4: if the packet is not satisfied, namely the solution result of the SMT is unsat, rolling back the state of the SMT expression, and then continuing to add the next version until all the packets appearing in the SMT expression are traversed once;
and 5: after the optimization operation in the step 4, obtaining a final SMT expression, then solving, obtaining all third party libraries required by the Python project, wherein the versions of the third party libraries are the latest versions meeting the version constraint range, and outputting an installation script;
the final SMT expression is solved using a Z3 solver, and a series of library version lists are obtained, each of which is in the form of a package _ name ═ id. And then mapping the id into a local knowledge base, acquiring a corresponding version number, converting the version number into a format of package _ name, and outputting the format of package _ name to an installation script.
Step 6: and for the installation scripts in the step 5, sequentially installing all third parties depending on the local environment where the project is located, and if the reusable third party library in the step 4 exists, linking the installation scripts to the environment where the project is located in a soft connection mode.
For each record of the installation script in the step 5, firstly, whether the local warehouse has the version of the library is indexed, if yes, the soft connection is directly established, ln-s is used in Linux, mklink is used in Windows, and finally, all the packages are indexed into the virtual environment where the current project is located. If the version does not exist in the local repository, a specific version of the repository is installed into the local repository using the pip install command pip install _ no _ deps, and then a soft connection is created into the current virtual environment.
And 7: and (6) successfully installing, and outputting an installation result.
The invention provides a Python software project third-party library dependence automatic analysis and installation method, which comprises the steps of detecting a configuration file of a project, automatically analyzing all third-party libraries and the most appropriate version range required by the project, finally automatically solving and providing all third-party libraries and versions thereof required by the current project according to the condition of the locally installed third-party libraries, automatically installing all versions, simultaneously reusing the locally installed third-party libraries as much as possible, and finally saving the downloading time and the installation time required by a user for installing the project and reducing the use of a hard disk space.

Claims (5)

  1. The Python project third-party library dependence automatic analysis and installation method is characterized by comprising the following steps:
    step 1: acquiring detailed information of all third-party libraries in a Python ecological community, including library names, versions and all required direct dependencies of the library names and the versions, and constructing a local knowledge base;
    and 2, step: acquiring a dependency configuration file, setup.
    And step 3: constructing a complete dependency tree of the project, generating an SMT expression and solving a constraint range;
    and 4, step 4: optimizing the generated SMT expression according to the installed third-party library in the local environment;
    and 5: after the optimization operation in the step 4, obtaining a final SMT expression, then solving, obtaining all third party libraries required by a Python project, wherein the version of the third party libraries is the latest version meeting the version constraint range, and outputting an installation script;
    step 6: and (5) sequentially installing the installation scripts in the step (5), wherein all third parties depend on the local environment where the project is located, and if a reusable third party library exists, the installation scripts are linked to the environment where the project is located in a soft connection mode.
  2. 2. The Python project third party library dependency automation parsing and installing method of claim 1, wherein in step 1, the step of building the local knowledge base is:
    step 1.1: acquiring all third party libraries of a Python ecological community;
    accessing an API provided by PyPI, acquiring the name and version list of each third-party library in the Python ecological community, and then downloading each version to a local environment through a command 'pip install package _ name-no-deps';
    step 1.2: analyzing the dependency information of each library version;
    after downloading a third-party library through the command in the step 1.1, analyzing a setup.py file of the third-party library, acquiring the complete name and version number of the library and the complete name and version number information of all other directly dependent third-party libraries of the library, and respectively storing the 4 types of information into a database table package _ req, wherein 4 columns are respectively package _ name, package _ version, package _ req _ name and package _ req _ version;
    step 1.3: renumbering the data to form a local knowledge base;
    because the SMT constraint solver only supports numerical range solving and does not support version number formats (such as 0.0.1), data items in the database need to be renumbered, each version of each library corresponds to a unique id, and the id numbers are sequentially arranged from small to large according to the version numbers; and finally, forming a local knowledge base file, wherein the storage format is a Json file.
  3. 3. The Python project third-party library dependency automated parsing and installing method of claim 1, wherein in step 3, the specific steps of constructing a complete dependency tree of a project, generating an SMT expression and solving a constraint range are:
    step 3.1: analyzing the project direct dependency library;
    analyzing the dependency configuration file obtained in the step 2, and after the configuration file is obtained, analyzing a setup.py file by the method in the step 1.2 or directly reading requirements.txt to obtain all required information of a direct dependency library of a Python project; sequentially analyzing each direct dependency library of the project according to an analysis strategy with a pip default breadth priority to obtain a required version constraint range;
    step 3.2: acquiring a satisfiable version list of a direct dependency base from a knowledge base;
    after the version constraint ranges of all the direct dependency libraries of the project are obtained in the step 3.1, the versions are converted into an id list, and all the versions which accord with the version constraint ranges of the current library are obtained and searched in the local knowledge base;
    step 3.3: analyzing each version in the step 3.2, and acquiring information of a sub-dependency library of the version, including names and version constraint ranges;
    step 3.4: repeating the step 3.2 to the step 3.3 by using a depth-first traversal algorithm until the construction of the whole complete dependency tree of the Python project is completed, wherein the complete dependency tree comprises all required dependency libraries and all feasible versions of the current project;
    step 3.5: generating an SMT expression according to the complete dependency tree in the step 3.4;
    converting each dependency library and the version thereof in the complete dependency tree in the step 3.4 into a corresponding unique id in the local knowledge base, and converting the version constraint range of the library into the range of the id to form an SMT expression; the SMT expression only supports the value type for comparison; the multiple versions of each library are in OR relationship, the multiple libraries are in AND relationship, AND finally an SMT expression based on a complete dependency tree is formed;
    step 3.6: and solving the SMT expression by using a constraint solving tool Z3 to obtain the range of the constraint of the satisfiable version of each dependency library.
  4. 4. The Python project third party library dependent automated parsing and installation method of claim 1, wherein in step 4, the generated SMT expressions are optimized according to the installed third party library in the local environment, and the specific steps are as follows:
    step 4.1: acquiring an installed third-party library list package _ list in a local environment;
    step 4.2: for each version of each third party library in the package _ list, sequentially adding the SMT expressions in the step (3) from a high version to a low version, and judging whether the SMT expressions meet the requirements by using a constraint solver;
    step 4.3: if so, proving that the current version conforms to the SMT constraint range and can be reused, so that the current version is reserved;
    step 4.4: if not, rolling back the state of the SMT expression, and then continuing to add the next version until all the packets appearing in the SMT expression are traversed once, and stopping.
  5. 5. The Python project third party library dependency automation parsing and installing method of claim 1, characterized in that in step 6, the specific steps are as follows:
    for each record of the installation script in the step 5, firstly, whether the local warehouse has the version of the library or not is indexed, if yes, the soft connection is directly established, ln-s is used in Linux, mklink is used in Windows, and finally, all the packages are indexed into the virtual environment where the current project is located; if the version does not exist in the local repository, a specific version of the repository is installed into the local repository using the pip install command pip install _ no _ deps, and then a soft connection is created into the current virtual environment.
CN202210554316.XA 2022-05-20 2022-05-20 Python project third-party library dependent automatic analysis and installation method Active CN114780109B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210554316.XA CN114780109B (en) 2022-05-20 2022-05-20 Python project third-party library dependent automatic analysis and installation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210554316.XA CN114780109B (en) 2022-05-20 2022-05-20 Python project third-party library dependent automatic analysis and installation method

Publications (2)

Publication Number Publication Date
CN114780109A true CN114780109A (en) 2022-07-22
CN114780109B CN114780109B (en) 2024-06-04

Family

ID=82408944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210554316.XA Active CN114780109B (en) 2022-05-20 2022-05-20 Python project third-party library dependent automatic analysis and installation method

Country Status (1)

Country Link
CN (1) CN114780109B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543294A (en) * 2022-12-06 2022-12-30 麒麟软件有限公司 Method for generating visual dependency tree of dynamic link library on Linux system
CN115934106A (en) * 2023-03-14 2023-04-07 麒麟软件有限公司 Method for rapidly detecting apt warehouse source dependence integrity

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017134665A1 (en) * 2016-02-03 2017-08-10 Cocycles System for organizing, functionality indexing and constructing of a source code search engine and method thereof
CN107704256A (en) * 2017-10-11 2018-02-16 成都知道创宇信息技术有限公司 The method that Python relies on system library automation installation is realized on a kind of Ubuntu
CN109446066A (en) * 2018-09-20 2019-03-08 北京大学 The static detection method and system of unreachable code in C/C++ program
EP3454213A1 (en) * 2017-09-08 2019-03-13 Accenture Global Solutions Limited Function library build architecture for serverless execution frameworks
CN111124454A (en) * 2019-12-25 2020-05-08 南京医康科技有限公司 Mirror image construction method and device, electronic equipment and storage medium
CN112631607A (en) * 2020-12-31 2021-04-09 东北大学 Method for detecting dependency conflict in python environment
WO2021113316A1 (en) * 2019-12-04 2021-06-10 Oracle International Corporation Inferring intra package and module dependencies

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017134665A1 (en) * 2016-02-03 2017-08-10 Cocycles System for organizing, functionality indexing and constructing of a source code search engine and method thereof
EP3454213A1 (en) * 2017-09-08 2019-03-13 Accenture Global Solutions Limited Function library build architecture for serverless execution frameworks
CN107704256A (en) * 2017-10-11 2018-02-16 成都知道创宇信息技术有限公司 The method that Python relies on system library automation installation is realized on a kind of Ubuntu
CN109446066A (en) * 2018-09-20 2019-03-08 北京大学 The static detection method and system of unreachable code in C/C++ program
WO2021113316A1 (en) * 2019-12-04 2021-06-10 Oracle International Corporation Inferring intra package and module dependencies
CN111124454A (en) * 2019-12-25 2020-05-08 南京医康科技有限公司 Mirror image construction method and device, electronic equipment and storage medium
CN112631607A (en) * 2020-12-31 2021-04-09 东北大学 Method for detecting dependency conflict in python environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何春燕;王超宇;: "基于python+pandas的数据分析处理应用", 数码世界, no. 07, 1 July 2018 (2018-07-01) *
徐立新;雷相波;: "应用Maven管理项目", 电脑知识与技术, no. 10, 5 April 2010 (2010-04-05) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543294A (en) * 2022-12-06 2022-12-30 麒麟软件有限公司 Method for generating visual dependency tree of dynamic link library on Linux system
CN115543294B (en) * 2022-12-06 2023-03-17 麒麟软件有限公司 Method for generating visual dependency tree of dynamic link library on Linux system
CN115934106A (en) * 2023-03-14 2023-04-07 麒麟软件有限公司 Method for rapidly detecting apt warehouse source dependence integrity
CN115934106B (en) * 2023-03-14 2023-06-02 麒麟软件有限公司 Method for rapidly detecting source dependency integrity of apt warehouse

Also Published As

Publication number Publication date
CN114780109B (en) 2024-06-04

Similar Documents

Publication Publication Date Title
US8739150B2 (en) Systems and methods for dynamically replacing code objects via conditional pattern templates
US7577946B2 (en) Program product, method, and system for testing consistency of machine code files and source files
US8572566B2 (en) Systems and methods for analyzing changes in application code from a previous instance of the application code
US8898627B2 (en) Systems and methods for applying rules to transform objects of an application
CN112394942B (en) Distributed software development compiling method and software development platform based on cloud computing
US8671222B2 (en) Systems and methods for dynamically deploying an application transformation tool over a network
CN114780109B (en) Python project third-party library dependent automatic analysis and installation method
US8516442B2 (en) Graphical user interface metadata evolution tool
US20050262482A1 (en) System and method for efficiently analyzing and building interdependent resources in a software project
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN110716874B (en) Domestic operating system hardware compatibility testing method
CN116414774A (en) File migration method, device, equipment and storage medium
CN113901083A (en) Heterogeneous data source operation resource analysis positioning method and equipment based on multiple analyzers
CN110543427B (en) Test case storage method and device, electronic equipment and storage medium
CN112631607B (en) Method for detecting dependency conflict in python environment
CN111240987B (en) Method and device for detecting migration program, electronic equipment and computer readable storage medium
CN115525534A (en) Test case generation method and platform based on swagger interface test
CN115794858A (en) Query statement processing method, device, equipment and storage medium
CN114327431A (en) Compiling method, device, equipment and storage medium
CN114547083A (en) Data processing method and device and electronic equipment
Dhakal et al. Library Tweets Conversion
CN114416104B (en) Structured data file processing method and device
CN116755684B (en) OAS Schema generation method, device, equipment and medium
CN115934106B (en) Method for rapidly detecting source dependency integrity of apt warehouse
CN110716746B (en) Method and device for converting RN style code into applet style code

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant