Package: py-solc
Python wrapper around thesolcSolidity compiler.DependencyThis library requires thesolcexecutable to be present.Only versions>=0.4.2are supported and tested though this library
may work with other versions.solc installation
instructionsQuickstartInstallationpipinstallpy-solcDevelopmentClone the repository and then run:pipinstall-e.-rrequirements-dev.txtRunning the testsYou can run the tests with:py.testtestsOr you can installtoxto run the full test suite.ReleasingPandoc is required for transforming the markdown README to the proper
format to render correctly on pypi.For Debian-like systems:apt install pandocOr on OSX:brewinstallpandocTo release a new version:bumpversion$$VERSION_PART_TO_BUMP$$gitpush&&gitpush--tagsmakereleaseHow to bumpversionThe version format for this repo is{major}.{minor}.{patch}for
stable, and{major}.{minor}.{patch}-{stage}.{devnum}for unstable
(stagecan be alpha or beta).To issue the next version in line, use bumpversion and specify which
part to bump, likebumpversion minororbumpversion devnum.If you are in a beta version,bumpversion stagewill switch to a
stable.To issue an unstable version when the current version is stable, specify
the new version explicitly, likebumpversion--new-version4.0.0-alpha.1devnumStandard JSON CompilationUse thesolc.compile_standardfunction to make use the
[standard-json] compilation feature.Solidity Documentation for Standard JSON input and ouptup
format>>> from solc import compile_standard
>>> compile_standard({
...     'language': 'Solidity',
...     'sources': {'Foo.sol': 'content': "...."},
... })
{
    'contracts': {...},
    'sources': {...},
    'errors': {...},
}
>>> compile_standard({
...     'language': 'Solidity',
...     'sources': {'Foo.sol': 'urls': ["/path/to/my/sources/Foo.sol"]},
... }, allow_paths="/path/to/my/sources")
{
    'contracts': {...},
    'sources': {...},
    'errors': {...},
}Legacy Combined JSON compilation>>>fromsolcimportcompile_source,compile_files,link_code>>>compile_source("contract Foo { function Foo(){}}"){'Foo':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},}>>>compile_files(["/path/to/Foo.sol","/path/to/Bar.sol"]){'Foo':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},'Bar':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},}>>>unlinked_code="606060405260768060106000396000f3606060405260e060020a6000350463e7f09e058114601a575b005b60187f0c55699c00000000000000000000000000000000000000000000000000000000606090815273__TestA_________________________________90630c55699c906064906000906004818660325a03f41560025750505056">>>link_code(unlinked_code,{'TestA':'0xd3cda913deb6f67967b99d67acdfa1712c293601'})..."606060405260768060106000396000f3606060405260e060020a6000350463e7f09e058114601a575b005b60187f0c55699c00000000000000000000000000000000000000000000000000000000606090815273d3cda913deb6f67967b99d67acdfa1712c29360190630c55699c906064906000906004818660325a03f41560025750505056"Setting the path to thesolcbinaryYou can use the environment variableSOLC_BINARYto set the path to
your solc binary.Installing thesolcbinaryThis feature is experimental and subject to breaking changes.Any of the following versions ofsolccan be installed usingpy-solcon the listed platforms.v0.4.1(linux)v0.4.2(linux)v0.4.6(linux)v0.4.7(linux)v0.4.8(linux/osx)v0.4.9(linux)v0.4.11(linux/osx)v0.4.12(linux/osx)v0.4.13(linux/osx)v0.4.14(linux/osx)v0.4.15(linux/osx)v0.4.16(linux/osx)v0.4.17(linux/osx)v0.4.18(linux/osx)v0.4.19(linux/osx)v0.4.20(linux/osx)v0.4.21(linux/osx)v0.4.22(linux/osx)v0.4.23(linux/osx)v0.4.24(linux/osx)v0.4.25(linux/osx)Installation can be done via the command line:$python-msolc.installv0.4.25Or from python using theinstall_solcfunction.>>>fromsolcimportinstall_solc>>>install_solc('v0.4.25')The installed binary can be found under your home directory. Thev0.4.25binary would be located at$HOME/.py-solc/solc-v0.4.25/bin/solc. Older linux installs will also
require that you set the environment variableLD_LIBRARY_PATH=$HOME/.py-solc/solc-v0.4.25/binImport path remappingssolcprovides path aliasing allow you to have more reusable project
configurations.You can use this like:from solc import compile_source, compile_files, link_code

compile_files([source_file_path], import_remappings=["zeppeling=/my-zeppelin-checkout-folder"])More information about solc import
aliasing