2014-02-09 2 views
1

TypeError: object of type NoneType has no len, 나는 환경 변수에 파이썬 2.7을 가지고 내 cmd를 프롬프트 (개방

오류가 있습니다.

I CD의 폴더를 통해 다음 setup.py와 함께 내가

이 가정 윈도우에서 사용하기위한 독립 EXE 파일을 생성합니다. 파이썬 setup.py의 py2exe에 실행하지만, ntpath.py가 제대로 내 길을받지되는 것 같습니다.

이 보였다 간단한 문제처럼,하지만 난 비록 내가 노력했지만 검색 할 단서가 없었다.

누군가 올바른 방향으로 나를 가리킬 수 있다면 크게 감사하겠습니다.

편집 :

다음은 Setup.py입니다.

저는 Windows 7, 64 비트, Python 2.7을 사용하고 있습니다. py2exe는 0.6.9입니다. 전자는 1.9.7

#!/usr/bin/python 

# python setup.py sdist --format=zip,gztar 

from setuptools import setup 
import os 
import sys 
import platform 
import imp 


version = imp.load_source('version', 'lib/version.py') 
util = imp.load_source('version', 'lib/util.py') 

if sys.version_info[:3] < (2, 6, 0): 
    sys.exit("Error: Electrum requires Python version >= 2.6.0...") 

usr_share = '/usr/share' 
if not os.access(usr_share, os.W_OK): 
    usr_share = os.getenv("XDG_DATA_HOME", os.path.join(os.getenv("HOME"), ".local", "share")) 

data_files = [] 
if (len(sys.argv) > 1 and (sys.argv[1] == "sdist")) or (platform.system() != 'Windows' and platform.system() != 'Darwin'): 
    print "Including all files" 
    data_files += [ 
     (os.path.join(usr_share, 'applications/'), ['electrum.desktop']), 
     (os.path.join(usr_share, 'app-install', 'icons/'), ['icons/electrum.png']) 
    ] 
    if not os.path.exists('locale'): 
     os.mkdir('locale') 
    for lang in os.listdir('locale'): 
     if os.path.exists('locale/%s/LC_MESSAGES/electrum.mo' % lang): 
      data_files.append((os.path.join(usr_share, 'locale/%s/LC_MESSAGES' % lang), ['locale/%s/LC_MESSAGES/electrum.mo' % lang])) 

appdata_dir = util.appdata_dir() 
if not os.access(appdata_dir, os.W_OK): 
    appdata_dir = os.path.join(usr_share, "electrum") 

data_files += [ 
    (appdata_dir, ["data/README"]), 
    (os.path.join(appdata_dir, "cleanlook"), [ 
     "data/cleanlook/name.cfg", 
     "data/cleanlook/style.css" 
    ]), 
    (os.path.join(appdata_dir, "sahara"), [ 
     "data/sahara/name.cfg", 
     "data/sahara/style.css" 
    ]), 
    (os.path.join(appdata_dir, "dark"), [ 
     "data/dark/background.png", 
     "data/dark/name.cfg", 
     "data/dark/style.css" 
    ]) 
] 


setup(
    name="Electrum", 
    version=version.ELECTRUM_VERSION, 
    install_requires=['slowaes', 'ecdsa>=0.9'], 
    package_dir={ 
     'electrum': 'lib', 
     'electrum_gui': 'gui', 
     'electrum_plugins': 'plugins', 
    }, 
    scripts=['electrum'], 
    data_files=data_files, 
    py_modules=[ 
     'electrum.account', 
     'electrum.bitcoin', 
     'electrum.blockchain', 
     'electrum.bmp', 
     'electrum.commands', 
     'electrum.i18n', 
     'electrum.interface', 
     'electrum.mnemonic', 
     'electrum.msqr', 
     'electrum.network', 
     'electrum.plugins', 
     'electrum.pyqrnative', 
     'electrum.simple_config', 
     'electrum.socks', 
     'electrum.transaction', 
     'electrum.util', 
     'electrum.verifier', 
     'electrum.version', 
     'electrum.wallet', 
     'electrum.wallet_bitkey', 
     'electrum.wallet_factory', 
     'electrum_gui.gtk', 
     'electrum_gui.qt.__init__', 
     'electrum_gui.qt.amountedit', 
     'electrum_gui.qt.console', 
     'electrum_gui.qt.history_widget', 
     'electrum_gui.qt.icons_rc', 
     'electrum_gui.qt.installwizard', 
     'electrum_gui.qt.lite_window', 
     'electrum_gui.qt.main_window', 
     'electrum_gui.qt.network_dialog', 
     'electrum_gui.qt.password_dialog', 
     'electrum_gui.qt.qrcodewidget', 
     'electrum_gui.qt.receiving_widget', 
     'electrum_gui.qt.seed_dialog', 
     'electrum_gui.qt.transaction_dialog', 
     'electrum_gui.qt.util', 
     'electrum_gui.qt.version_getter', 
     'electrum_gui.stdio', 
     'electrum_gui.text', 
     'electrum_plugins.aliases', 
     'electrum_plugins.coinbase_buyback', 
     'electrum_plugins.exchange_rate', 
     'electrum_plugins.labels', 
     'electrum_plugins.pointofsale', 
     'electrum_plugins.qrscanner', 
     'electrum_plugins.virtualkeyboard', 
    ], 
    description="Lightweight Bitcoin Wallet", 
    author="ecdsa", 
    author_email="[email protected]", 
    license="GNU GPLv3", 
    url="http://electrum.org", 
    long_description="""Lightweight Bitcoin Wallet""" 
) 
+1

전체 코드를 추가 할 것을 고려하십시오. – felipsmartins

+1

오류 메시지를 읽으면 프로그램의 20 행에서 path = None을 전달한 것 같습니다. –

+0

@felipsmartins 전체 코드가 추가되었습니다. 고맙습니다. – user3074620

답변

1

Windows 시스템에 "HOME"환경 변수가없는 것 같습니다! 따라서 라인 20 은 "HOME"이 Windows 환경에 정의되어 있지 않고 두 번째 인수가 지정되지 않았으므로 유형을 반환합니다 (기본값은 없음).

바꾸기 :

나는 다른 대안을 사용하는 것이 좋습니다

os.path.join(os.getenv("HOME"), ".local", "share") 

에 :

os.path.join(os.path.expanduser("~"), ".local", "share") 

이 경우는 Windows의 현재 사용자의 홈 디렉토리에 매핑 할 것입니다.

os.path.expanduser

관련 문제