无法为usercustomize.py文件创建用户站点包目录

时间:2016-07-23 14:25:27

标签: python windows unicode module python-unicode

我需要将win_unicode_console模块添加到我的usercustomize.py文件中,如文档所述。

我发现了我的用户站点包目录:

>>> import site
>>> site.getusersitepackages()
'C:\\Users\\my name\\AppData\\Roaming\\Python\\Python35\\site-packages'

我无法使用任何方法访问此目录。我尝试使用pushd而不是cd来模拟网络驱动器,我也试过使用run来实现。无论我在python或cmd终端中做什么。我收到了回复The network path was not found

以下是我在cmd中试过的一个例子:

C:\>pushd \\Users\\my name\\AppData\\Roaming\\Python\\Python35\\site-packages
The network path was not found.

我做错了什么,或路径出了什么问题?

1 个答案:

答案 0 :(得分:0)

DOS样式反斜杠不需要在Windows控制台中进行转义(否则它们可能在使用正斜杠时!)。

按照以下步骤手动创建usercustomize.py

  1. 开始 - >运行:cmd
  2. 确保您使用的是C:驱动器

    c:
    
  3. 创建目录。 mkdir创造了失踪的父母。显然,请酌情更改“我的名字”

    mkdir C:\Users\my name\AppData\Roaming\Python\Python35\site-packages
    
  4. 创建usercustomize.py:

    notepad C:\Users\my name\AppData\Roaming\Python\Python35\site-packages\usercustomize.py
    
  5. 点击“是”创建文件。

  6. 酌情编辑
  7. 或者使用以下脚本让Python为您执行此操作:

    import site
    import os
    import os.path
    import io
    
    user_site_dir = site.getusersitepackages()
    user_customize_filename = os.path.join(user_site_dir, 'usercustomize.py')
    
    win_unicode_console_text = u"""
    # win_unicode_console
    import win_unicode_console
    win_unicode_console.enable()
    """
    
    if os.path.exists(user_site_dir):
        print("User site dir already exists")
    else:
        print("Creating site dir")
        os.makedirs(user_site_dir)
    
    if not os.path.exists(user_customize_filename):
        print("Creating {filename}".format(filename=user_customize_filename))
        file_mode = 'w+t'
    else:
        print("{filename} already exists".format(filename=user_customize_filename))
        file_mode = 'r+t'
    
    with io.open(user_customize_filename, file_mode) as user_customize_file:
        existing_text = user_customize_file.read()
    
        if not win_unicode_console_text in existing_text:
            # file pointer should already be at the end of the file after read()
            user_customize_file.write(win_unicode_console_text)
            print("win_unicode_console added to {filename}".format(filename=user_customize_filename))
        else:
            print("win_unicode_console already enabled")