{ "info": { "author": "geekpanshi", "author_email": "vincentsxg@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![](https://img.shields.io/pypi/pyversions/dict.svg?longCache=True)](https://pypi.org/project/exampe-pip-package/)\r\n[![](https://img.shields.io/pypi/v/dict.svg?maxAge=3600)](https://pypi.org/project/exampe-pip-package/)\r\n[![Travis](https://api.travis-ci.org/XingangShi/exampe_pip_package.svg?branch=master)](https://travis-ci.org/XingangShi/exampe_pip_package)\r\n\r\n#### Installation\r\n```bash\r\n$ [sudo] pip install exampe_pip_package\r\n```\r\n\r\n#### Features\r\n* **example for add a new pip package.**\r\n* add some doc about learn how to release a pip package.\r\n\r\n#### Classes\r\nclass|`__doc__`\r\n-|-\r\n`exampe_pip_package.pip_test` |\r\n\r\n#### Examples\r\n```python\r\n>>> from exampe_pip_package import pip_test\r\n\r\n>>> example = pip_test()\r\n\r\n>>> example.get_info()\r\nHello, this is just a pip package example.\r\nPackage name is exampe_pip_package\r\n\r\n```\r\n---\r\n\r\n#### PIP \u5305\u751f\u6210\u53d1\u5e03\u4f7f\u7528\u5b66\u4e60\u6587\u6863\r\n\r\n##### \u6e90\u4ee3\u7801\u9879\u76ee\u7ed3\u6784\r\n\r\n```python\r\n\u2502 LICENSE // \u8bc1\u4e66\uff0c\u53ef\u4ee5\u4efb\u9009\u4e00\u4e2a\u7684\r\n\u2502 README.md // \u8bf4\u660e\u6587\u6863\r\n\u2502 setup.py // \u5b89\u88c5\u5305\r\n\u2502\r\n\u251c\u2500exampe_pip_package // \u6e90\u4ee3\u7801\u76ee\u5f55\r\n\u2502 __init__.py // \u6e90\u4ee3\u7801\u6587\u4ef6\r\n\u2502\r\n\u2514\u2500tests-exampe_pip_package-examples // \u6d4b\u8bd5\u6e90\u4ee3\u7801\u7684\u76ee\u5f55\r\n \u2514\u2500pip_test.get_info // \u6309\u7167\u7c7b\u6765\u8fdb\u884c\u6d4b\u8bd5\u5b50\u76ee\u5f55\u7684\u547d\u540d\r\n pip_test.get_info // \u6309\u7167\u65b9\u6cd5\u6765\u547d\u540d\u6d4b\u8bd5\u7c7b\u6587\u4ef6\r\n```\r\n\r\n##### \u5b89\u88c5\u5fc5\u8981\u7684\u8f6f\u4ef6\r\n> \u5b89\u88c5\u751f\u6210\u5f52\u6863\u6587\u4ef6\u7684\u8f6f\u4ef6\r\n```python\r\npython -m pip install --user --upgrade setuptools wheel\r\n```\r\n\r\n> \u5b89\u88c5\u53d1\u5e03\u4e0a\u4f20\u5305\r\n```python\r\npython -m pip install --user --upgrade twine\r\n```\r\n\r\n##### \u6ce8\u518c PYPI \u8d26\u53f7\r\n> [\u6d4b\u8bd5\u8d26\u53f7\u6ce8\u518c\u5730\u5740\uff0c\u7528\u4e8e\u6d4b\u8bd5\u7248\u672c](https://test.pypi.org/manage/projects/)\u3002\r\n>\r\n> [\u6b63\u5f0f\u8d26\u53f7\u6ce8\u518c\u5730\u5740\uff0c\u7528\u4e8e\u6b63\u5f0f\u7248\u672c\u53d1\u5e03](https://pypi.org/manage/projects/)\u3002\r\n>\r\n> **Note\uff1a \u6d4b\u8bd5\u8d26\u53f7\u548c\u6b63\u5f0f\u8d26\u53f7\u6ce8\u518c\u4e00\u6b21\u5c31\u53ef\u4ee5\u7684\uff0c\u4f46\u662f\u8981\u5206\u522b\u53bb\u8ba4\u8bc1\u53ef\u53d1\u5e03\u7684\u90ae\u7bb1\u3002**\r\n\r\n\r\n##### \u6253\u5305\u548c\u53d1\u5e03\r\n> \u751f\u6210\u53d1\u5e03\u5305\uff08\u751f\u6210\u5f52\u6863\u6587\u4ef6\uff09\r\n```python\r\npython setup.py sdist bdist_wheel\r\n```\r\n\r\n> \u6ce8\u518c\u5305\r\n```Python\r\ntwine register dist/exampe_pip_package.whl\r\n```\r\n\r\n> \u53d1\u5e03\r\n>\r\n>> \u53d1\u5e03\u5230\u6d4b\u8bd5\u73af\u5883\r\n```python\r\ntwine upload --repository-url https://test.pypi.org/legacy/ dist/*\r\n```\r\n>>\r\n>> \u53d1\u5e03\u5230\u6b63\u5f0f\u73af\u5883\r\n```python\r\ntwine upload --repository-url https://upload.pypi.org/legacy/ dist/*\r\n```\r\n>>\r\n>> \u53d1\u5e03\u8bf4\u660e\r\n```python\r\nE:\\selfDatas\\exampe_pip_package>twine upload --repository-url https://test.pypi.\r\norg/legacy/ dist/*\r\nEnter your username: \u8f93\u5165\u7528\u6237\u540d\uff0c\u4e0d\u662f\u90ae\u7bb1\r\nEnter your password: \u8f93\u5165\u5bc6\u7801\r\nUploading distributions to https://test.pypi.org/legacy/\r\n\u2026\u2026\r\n\r\n```\r\n\r\n> \u5305\u7ba1\u7406\r\n>> \u5305\u5df2\u7ecf\u4e0a\u4f20\u6210\u529f\u7684\u8bdd\uff0c\u53ef\u4ee5\u767b\u5f55 [PyPI \u7f51\u7ad9](https://pypi.org/) \u53ef\u4ee5\u5728\u53f3\u4fa7\u5bfc\u822a\u680f\u770b\u5230\u7ba1\u7406\u5165\u53e3\u3002\r\n>> \u70b9\u51fb\u5305\u540d\u8fdb\u53bb\u540e\u4f60\u53ef\u4ee5\u5bf9\u4f60\u7684\u5305\u8fdb\u884c\u7ba1\u7406\u3002\r\n\r\n##### \u53d1\u5e03\u6210\u529f\u540e\u5b89\u88c5\uff08pip install \u65b9\u5f0f\uff09\r\n> \u6d4b\u8bd5\u5305\u7684\u5b89\u88c5\r\n```python\r\npip install -i https://test.pypi.org/simple/ exampe-pip-package\r\n```\r\n\r\n> \u6b63\u5f0f\u7248\u672c\u7684\u5b89\u88c5\r\n```python\r\npip install exampe-pip-package\r\n```\r\n\r\n> \u66f4\u65b0\u5305\uff0c\u53ef\u4ee5\u4f7f\u7528 `--upgrade` \u53c2\u6570\u6765\u66f4\u65b0\r\n```python\r\npip install exampe-pip-package --upgrade\r\n```\r\n\r\n###### \u5b89\u88c5\u5305\u540e\u7684\u4f7f\u7528\r\n> import \u65b9\u5f0f\u4f7f\u7528\r\n```python\r\n>>> from exampe_pip_package import pip_test\r\n\r\n>>> example = pip_test()\r\n\r\n>>> example.get_info()\r\nHello, this is just a pip package example.\r\nPackage name is exampe_pip_package\r\n\r\n```\r\n\r\n##### \u53d1\u5e03\u6210\u529f\u540e\u5b89\u88c5\uff08requirements \u65b9\u5f0f\u4f7f\u7528\uff09\r\n>> \u76ee\u5f55\u7ed3\u6784\r\n```python\r\nE:.\r\n main.py # \u9700\u8981\u4f7f\u7528\u5305\u7684\u4ee3\u7801\r\n requirements.txt # \u9700\u8981\u4f7f\u7528\u5230\u5305\u7684\u5305\u540d\r\n run.sh # \u5b89\u88c5\u5305\u5e76\u6267\u884c\u6587\u4ef6\r\n```\r\n>> [\u8be6\u89c1 requirements \u65b9\u5f0f\u4f7f\u7528](/test-requirements_type-example)\r\n\r\n##### \u514d\u6388\u6743\u65b9\u5f0f\u53d1\u5e03\r\n> \u5728 Home \u76ee\u5f55\u4e0b\u521b\u5efa\u6587\u4ef6 `~/.pypirc`\uff0c\u5185\u5bb9\u5982\u4e0b\r\n``` python\r\n[distutils]\r\nindex-servers = pypi\r\n\r\n[pypi]\r\nrepository: https://pypi.python.org/pypi\r\nusername: \r\npassword: # \u4e0d\u8bbe\u7f6e\u7684\u8bdd\uff0c\u53d1\u5e03\u65f6\u4f1a\u63d0\u793a\u624b\u52a8\u8f93\u5165\u7684\r\n```\r\n\r\n##### \u53ef\u80fd\u9047\u5230\u7684\u9519\u8bef\r\n> \u9519\u8bef\u7684\u7528\u6237\u9a8c\u8bc1\u4fe1\u606f\uff0c\u4f60\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u7528\u6237\u9a8c\u8bc1\u6587\u4ef6 ~/.pypirc\u3002\u8bf7\u53c2\u9605\u4e0a\u6587\u3002\r\n```python\r\nUpload failed (403): Invalid or non-existent authentication information.\r\n```\r\n\r\n> \u4f60\u9700\u8981\u5148\u6ce8\u518c\u4f60\u7684\u5305\u624d\u53ef\u4ee5\u5f00\u59cb\u4e0a\u4f20\uff0c\u8fd0\u884c\u6ce8\u518c\u547d\u4ee4\uff1a`python setup.py register`\r\n```python\r\nUpload failed (403): You are not allowed to edit 'xxx' package information\r\n```\r\n\r\n> \u4f60\u7684 PyPI \u8d26\u6237\u8fd8\u6ca1\u5b8c\u6210\u90ae\u7bb1\u9a8c\u8bc1\uff0c\u4f60\u9700\u8981\u53bb\u6ce8\u518c\u90ae\u7bb1\u627e\u5230\u4e00\u5c01\u9a8c\u8bc1\u90ae\u4ef6\u5b8c\u6210\u9a8c\u8bc1\u540e\u518d\u91cd\u8bd5\u5931\u8d25\u7684\u6b65\u9aa4\u3002\r\n```python\r\nServer response (401): Incomplete registration; check your email\r\n```\r\n\r\n> \u4f60\u7684 setup.py \u6587\u4ef6\u4e2d\u7684 classifier \u4fe1\u606f\u6709\u8bef\uff0c\u8bf7\u6309\u5b98\u7f51\u7684\u6b63\u786e\u5206\u7c7b\u4e66\u5199classifier.\r\n```python\r\nServer response (400): Invalid classifier \"Topic :: Software Development :: Utilities\"\r\n```\r\n\r\n> \u4f60\u8fd8\u6ca1\u6253\u5305\u5c31\u5f00\u59cb\u4e86\u4e0a\u4f20\u547d\u4ee4\uff0c\u5efa\u8bae\u6253\u5305\u548c\u4e0a\u4f20\u7684\u64cd\u4f5c\u653e\u5728\u4e00\u8d77\u505a\uff0c\u6bd4\u5982\uff1a`twine upload dist/*`\r\n```python\r\nerror: No dist file created in earlier command\r\n```\r\n\r\n> \u7f51\u7edc\u95ee\u9898\uff0c\u8bf7\u518d\u6b21\u5c1d\u8bd5\r\n```python\r\nerror: Upload failed (499): Client Disconnected\r\n```\r\n\r\n> \u6bcf\u6b21\u5fc5\u987b\u4f7f\u7528\u4e0d\u540c\u7684\u7248\u672c\u53f7\uff0c\u6240\u4ee5\u5efa\u8bae\u5148\u5728\u6d4b\u8bd5\u7248\u6d4b\u8bd5\u597d\u4e86\uff0c\u518d\u5728\u6b63\u5f0f\u7248\u53d1\u5e03\u7684\u3002\r\n```python\r\nUpload failed (400): File already exists\r\n```\r\n\r\n##### \u66f4\u591a\u76f8\u5173\u4fe1\u606f\uff0c\u89c1[\u5b98\u65b9\u6587\u6863](https://packaging.python.org/)\u3002\r\n

\r\n More info\r\n

\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/XingangShi/exampe_pip_package.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "exampe-pip-package", "package_url": "https://pypi.org/project/exampe-pip-package/", "platform": "", "project_url": "https://pypi.org/project/exampe-pip-package/", "project_urls": { "Homepage": "https://github.com/XingangShi/exampe_pip_package.git" }, "release_url": "https://pypi.org/project/exampe-pip-package/0.0.4/", "requires_dist": null, "requires_python": "", "summary": "Just a pip package example", "version": "0.0.4" }, "last_serial": 5654309, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f39523494238ce4e25817bfdbe0c055d", "sha256": "e4d08471ec04272bab655296450e9fe2406d07057fc60a59f2a05e5e78051912" }, "downloads": -1, "filename": "exampe_pip_package-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f39523494238ce4e25817bfdbe0c055d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2734, "upload_time": "2019-08-09T03:09:20", "url": "https://files.pythonhosted.org/packages/0d/30/2faa805f940b1ed95201e53607dea1347e26f9c99a3938c97e90af7f9e84/exampe_pip_package-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0ffac4c371b16a8c90475fb0d59d8b8", "sha256": "2b5538a5a67775d0d698cc592bb31cfe4b2d88fc8f30da9f3cbf11c7a83efaca" }, "downloads": -1, "filename": "exampe_pip_package-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c0ffac4c371b16a8c90475fb0d59d8b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1438, "upload_time": "2019-08-09T03:09:22", "url": "https://files.pythonhosted.org/packages/b9/24/fa709e090f867f9fdb8d7c5984415be84ce8d7f877fddb8f7bb27e9d5f58/exampe_pip_package-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "36ee83cd4f94a7b1e54a2769e16ad553", "sha256": "c6e895f69a3d584aa1f39491c5352ece3004e83975303b3367accbb3b80f2290" }, "downloads": -1, "filename": "exampe_pip_package-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "36ee83cd4f94a7b1e54a2769e16ad553", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4741, "upload_time": "2019-08-09T04:26:50", "url": "https://files.pythonhosted.org/packages/a2/26/8648aa636befcc4d7d24a389019deee41de72081cdccca7c5b7a4f35b576/exampe_pip_package-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a603ee8a52f59c98323e02c7aed1423", "sha256": "fb4cf468f94c9d8ded29dac4723ea4591fcaecd2cfe4a19bede139ffc13904ea" }, "downloads": -1, "filename": "exampe_pip_package-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8a603ee8a52f59c98323e02c7aed1423", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4001, "upload_time": "2019-08-09T04:26:52", "url": "https://files.pythonhosted.org/packages/7c/d3/94725815f1e8120339b7262613df507e408b363114916ae65e4a3c8f4d7d/exampe_pip_package-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4e45a3f662e3cd785f1a916afc1dbf20", "sha256": "c3b395e1ac79e175bf019d70944e025376dd06439327a2df307e508c78ff86bd" }, "downloads": -1, "filename": "exampe_pip_package-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4e45a3f662e3cd785f1a916afc1dbf20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4825, "upload_time": "2019-08-09T08:32:55", "url": "https://files.pythonhosted.org/packages/8a/2f/18af4bd90731e637558593713dca9ccf121f3236a0eb06e290b064365a25/exampe_pip_package-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "666e896be9e20417a4d6ae0b24a4397a", "sha256": "6d8bb4f4378892fbbb6630adbffef34bdc32645a110beaa09514620181ae7f62" }, "downloads": -1, "filename": "exampe_pip_package-0.0.3.tar.gz", "has_sig": false, "md5_digest": "666e896be9e20417a4d6ae0b24a4397a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4141, "upload_time": "2019-08-09T08:32:56", "url": "https://files.pythonhosted.org/packages/34/48/9e41f1e46a5264d4edb5d0e1a7b4cb06cf276451986db2a05721592c1f2b/exampe_pip_package-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f686262bc0e3777fbbe59400cdec5349", "sha256": "7b89b14485bea33823c0c856ba1ca2937280e2bc1f79ffc15c4f04edac725f4a" }, "downloads": -1, "filename": "exampe_pip_package-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "f686262bc0e3777fbbe59400cdec5349", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4852, "upload_time": "2019-08-09T08:50:41", "url": "https://files.pythonhosted.org/packages/5f/53/8e63022bec6802cc028e589fdf45217b4443e40a7bb0236608253db33e11/exampe_pip_package-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e39542e93314ce1d46d6c6c2e6f98ff1", "sha256": "ceb5af5b0e19439c78f06649057ccf2b5f6e21fa71bee36663a85f48c8f6c41a" }, "downloads": -1, "filename": "exampe_pip_package-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e39542e93314ce1d46d6c6c2e6f98ff1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4189, "upload_time": "2019-08-09T08:50:43", "url": "https://files.pythonhosted.org/packages/c8/cd/52c6673921e97acc55783099a439b69d3306d9f3c23aadfc6672c913beee/exampe_pip_package-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f686262bc0e3777fbbe59400cdec5349", "sha256": "7b89b14485bea33823c0c856ba1ca2937280e2bc1f79ffc15c4f04edac725f4a" }, "downloads": -1, "filename": "exampe_pip_package-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "f686262bc0e3777fbbe59400cdec5349", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4852, "upload_time": "2019-08-09T08:50:41", "url": "https://files.pythonhosted.org/packages/5f/53/8e63022bec6802cc028e589fdf45217b4443e40a7bb0236608253db33e11/exampe_pip_package-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e39542e93314ce1d46d6c6c2e6f98ff1", "sha256": "ceb5af5b0e19439c78f06649057ccf2b5f6e21fa71bee36663a85f48c8f6c41a" }, "downloads": -1, "filename": "exampe_pip_package-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e39542e93314ce1d46d6c6c2e6f98ff1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4189, "upload_time": "2019-08-09T08:50:43", "url": "https://files.pythonhosted.org/packages/c8/cd/52c6673921e97acc55783099a439b69d3306d9f3c23aadfc6672c913beee/exampe_pip_package-0.0.4.tar.gz" } ] }