【python】Anaconda及虛擬環(huán)境使用

一缨恒、基本介紹

在介紹Anaconda之前,我們使用python常見使用的IDE是pyCharm捉腥,而安裝第三方包或python庫而兩種形式:
1.使用命令
pip install 包名
2.IDE內(nèi)安裝

界面.png
簡單的包可以通過以上任意兩種形式安裝到本地環(huán)境奴愉,但復(fù)雜的工程情況下,存在兩個問題:1.安裝包存在依賴包(依賴的先后順序不確定/多個)安裝繁瑣厅各,2.本地環(huán)境安裝多個包容易污染本地環(huán)境,不方便管理晃琳。而Anaconda正是為了解決優(yōu)化以上問題而誕生讯检。
Anaconda是一款可以獲取包及對包進(jìn)行管理琐鲁、環(huán)境統(tǒng)一管理的軟件卫旱。其中包含conda、Python在內(nèi)的超過180個科學(xué)包及其依賴項(xiàng)围段。
虛擬/本機(jī)環(huán)境包管理.png

二顾翼、環(huán)境搭建(pyCharm+Anaconda)

1、安裝pyCharm
2奈泪、安裝Anaconda

三适贸、基礎(chǔ)命令

新增虛擬環(huán)境

(base) faria-2:anaconda3$ sudo conda create --name pymysql
Password:
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##
  environment location: /Users/xxx/anaconda3/envs/pymysql

Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate pymysql
#
# To deactivate an active environment, use
#
#     $ conda deactivate

刪除keyconda config --remove-key channels
查看已有配置

(base) faria-2:anaconda3$ conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
  - ca-certificates
  - certifi
  - openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_stack: 0
auto_update_conda: True
bld_path: 
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
  - defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /Users/xxx/anaconda3/conda-bld
custom_channels:
  pkgs/main: https://repo.anaconda.com
  pkgs/r: https://repo.anaconda.com
  pkgs/pro: https://repo.anaconda.com
custom_multichannels:
  defaults: 
    - https://repo.anaconda.com/pkgs/main
    - https://repo.anaconda.com/pkgs/r

新增鏡像(清華鏡像用http)

(base) faria-2:anaconda3$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-64/

查看虛擬環(huán)境(現(xiàn)有的虛擬環(huán)境*)

(pymysql) faria-2:~$ conda env list
# conda environments:
#
base                     /Users/xxx/anaconda3
pymysql               *  /Users/xxx/anaconda3/envs/pymysql

切換虛擬環(huán)境

conda activate 環(huán)境名稱

激活鏡像

(base) faria-2:anaconda$ source activate pymysql

常見問題

1灸芳、使用的鏡像(清華)用了https協(xié)議

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-64/repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-64'

解決思路:重新添加鏡像為http
2、新增虛擬環(huán)境報錯

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/osx-64/repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

'https://repo.anaconda.com/pkgs/main/osx-64'

解決步驟:

(base) faria-2:anaconda3$ conda config --set ssl_verify no
(base) faria-2:anaconda3$ conda config --set ssl_verify false
(base) faria-2:anaconda3$ vim ~/.condarc
(base) faria-2:anaconda3$ sudo conda create --name pymysql

3拜姿、無法安裝鏡像

(base) faria-2:anaconda3 xxx$ sudo  conda install -c anaconda redis
Password:
Collecting package metadata (repodata.json): failed

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/exceptions.py", line 1080, in __call__
        return func(*args, **kwargs)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/cli/main.py", line 84, in _main
        exit_code = do_call(args, p)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 83, in do_call
        return getattr(module, func_name)(args, parser)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/cli/main_install.py", line 20, in execute
        install(args, parser, 'install')
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/cli/install.py", line 263, in install
        should_retry_solve=(_should_retry_unfrozen or repodata_fn != repodata_fns[-1]),
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 117, in solve_for_transaction
        should_retry_solve)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 158, in solve_for_diff
        force_remove, should_retry_solve)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 262, in solve_final_state
        ssc = self._collect_all_metadata(ssc)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/common/io.py", line 88, in decorated
        return f(*args, **kwds)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 425, in _collect_all_metadata
        index, r = self._prepare(prepared_specs)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 1021, in _prepare
        self.subdirs, prepared_specs, self._repodata_fn)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/index.py", line 289, in get_reduced_index
        repodata_fn=repodata_fn)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 140, in query_all
        result = tuple(concat(executor.map(subdir_query, channel_urls)))
      File "/Users/xxx/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 586, in result_iterator
        yield fs.pop().result()
      File "/Users/xxx/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 432, in result
        return self.__get_result()
      File "/Users/xxx/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
        raise self._exception
      File "/Users/xxx/anaconda3/lib/python3.7/concurrent/futures/thread.py", line 57, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 133, in <lambda>
        package_ref_or_match_spec))
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 145, in query
        self.load()
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 210, in load
        _internal_state = self._load()
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 394, in _load
        mod_etag_headers.get('_mod'))
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 442, in _read_local_repdata
        _internal_state = self._process_raw_repodata_str(raw_repodata_str)
      File "/Users/xxx/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 480, in _process_raw_repodata_str
        json_obj = json.loads(raw_repodata_str or '{}')
      File "/Users/xxx/anaconda3/lib/python3.7/json/__init__.py", line 348, in loads
        return _default_decoder.decode(s)
      File "/Users/xxx/anaconda3/lib/python3.7/json/decoder.py", line 337, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/Users/xxx/anaconda3/lib/python3.7/json/decoder.py", line 355, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 291378 column 33 (char 8808000)

`$ /Users/xxx/anaconda3/bin/conda install -c anaconda redis`

  environment variables:
                 CIO_TEST=<not set>
               CONDA_ROOT=/Users/xxx/anaconda3
           CURL_CA_BUNDLE=<not set>
                     PATH=/usr/local/bin:/usr/local/sbin:/Users/xxx/anaconda3/bin:/Users/c
                          henfenyu/anaconda3/condabin:/Library/Java/JavaVirtualMachines/jdk1.8.0
                          _181.jdk/Contents/Home/bin:/usr/local/anaconda3/bin:/usr/local/bin:/us
                          r/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/bin/ChromeDriv
                          er:/usr/local/mysql/bin:.:/Users/xxx/Work/apache-jmeter-5.4.1/bi
                          n:/usr/local/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbi
                          n:/usr/local/go/bin:/usr/local/bin/ChromeDriver:/usr/local/mysql/bin
       REQUESTS_CA_BUNDLE=<not set>
            SSL_CERT_FILE=<not set>
             SUDO_COMMAND=/Users/xxx/anaconda3/bin/conda install -c anaconda redis
                 SUDO_GID=20
                 SUDO_UID=501
                SUDO_USER=xxx

     active environment : None
       user config file : /Users/xxx/.condarc
 populated config files : /Users/xxx/.condarc
          conda version : 4.11.0
    conda-build version : 3.17.6
         python version : 3.7.1.final.0
       virtual packages : __osx=10.16=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/xxx/anaconda3  (writable)
      conda av data dir : /Users/xxx/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/anaconda/osx-64
                          https://conda.anaconda.org/anaconda/noarch
                          http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-64
                          http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
                          http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/osx-64
                          http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
          package cache : /Users/xxx/anaconda3/pkgs
                          /Users/xxx/.conda/pkgs
       envs directories : /Users/xxx/anaconda3/envs
                          /Users/xxx/.conda/envs
               platform : osx-64
             user-agent : conda/4.11.0 requests/2.21.0 CPython/3.7.1 Darwin/20.6.0 OSX/10.16
                UID:GID : 0:0
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.

Upload successful.

解決思路:

(base) faria-2:~ xxx$ cd ~
(base) faria-2:~ xxx$ rm .condarc

舉例:pyautogui配合anaconda的安裝

方式1-虛擬環(huán)境:sudo  conda install -c anaconda redis    (指定版本https://anaconda.org/search?q=redis 可查詢)
方式2-虛擬環(huán)境離線包:conda install --use-local gdal-2.3.0-py36h04863e7_1.tar.bz2
方式2-本機(jī)環(huán)境:
pip install /路徑/cacheout-0.14.1-py3-none-any.whl(https://pypi.org/project/cacheout/#files  whl文件)
python (解壓后路徑)setup.py install (https://pypi.org/project/cacheout/#files tar.gz文件)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烙样,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蕊肥,更是在濱河造成了極大的恐慌谒获,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁却,死亡現(xiàn)場離奇詭異批狱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)展东,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門赔硫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盐肃,你說我怎么就攤上這事爪膊。” “怎么了砸王?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵惊完,是天一觀的道長。 經(jīng)常有香客問我处硬,道長小槐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任荷辕,我火速辦了婚禮凿跳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疮方。我一直安慰自己控嗜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布骡显。 她就那樣靜靜地躺著疆栏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惫谤。 梳的紋絲不亂的頭發(fā)上壁顶,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音溜歪,去河邊找鬼若专。 笑死,一個胖子當(dāng)著我的面吹牛蝴猪,可吹牛的內(nèi)容都是我干的调衰。 我是一名探鬼主播膊爪,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嚎莉!你這毒婦竟也來了米酬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤趋箩,失蹤者是張志新(化名)和其女友劉穎淮逻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阁簸,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爬早,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了启妹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筛严。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饶米,靈堂內(nèi)的尸體忽然破棺而出桨啃,到底是詐尸還是另有隱情,我是刑警寧澤檬输,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布照瘾,位于F島的核電站,受9級特大地震影響丧慈,放射性物質(zhì)發(fā)生泄漏析命。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一逃默、第九天 我趴在偏房一處隱蔽的房頂上張望鹃愤。 院中可真熱鬧,春花似錦完域、人聲如沸软吐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凹耙。三九已至,卻和暖如春肠仪,著一層夾襖步出監(jiān)牢的瞬間肖抱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工藤韵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虐沥,地道東北人熊经。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓泽艘,卻偏偏與公主長得像欲险,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匹涮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容